{"version":3,"file":"static/js/main.6353d4e0.js","mappings":"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AAQ,EACR31D,KAAM,EACN8R,MAAO,SAACw4C,EAAmB3iD,GACvB,MACS,WADDA,EAEO,EAGA,ICyCV+0D,GAAgE,CACzE/4D,KAAM,kBACN+1C,aAAc,OACdic,QAAQ,EACR31D,KAAM,EACN8R,MAAO,SAACw4C,EAAmBtqD,GACvB,OAAQA,GACJ,IAAK,OACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,UACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,uBACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,GACX,IAAK,eACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,qBACD,OAAO,GACX,IAAK,oBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,aACD,OAAO,GACX,IAAK,mBACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,WAEL,IAAK,SACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,oBACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,uBACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,MACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,SACD,OAAO,GACX,IAAK,OACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,i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,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEpD8E,OAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAIFonB,GAAyB,CAC3BlsB,SAAU,CACN,IAAO,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEpD8E,OAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,eACA,eACA,eACA,eACA,eACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAIFqnB,GAA2B,CAC7BnsB,SAAU,CACN,IAAO,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC1G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAE5D8E,OAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAIFsnB,GAAwB,SAC1Bl1E,EACAmc,EACAokB,EACA40C,EACAC,EACAC,GAEA,OAAIr1E,EAAQmc,GAAOnc,EAAQugC,EAChB+0C,GAAkBt1E,EAAOo1E,EAAUC,EAAOnuE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GAAS,SAACllH,GAAA,gBCCQA,EACtBqhC,EACAD,EACAqgF,GAAA,YAAAA,IAAAA,EAAkB1+G,MAEbw0B,EAAAA,GAAAA,oBAAmB6J,GAAA,OACfsgF,GAAiB,EAAG7rH,OAAOurC,IAAA,IAK9BhvB,EAAmB,kBAAaivB,EAAqBD,EAAKqgF,EAASuD,GAAA53H,WAAA,EAAAC,WAAA,SAGzE+kB,EAAiBqgP,WAAa,SAAAl7N,GAAA,OAC5Bv3B,EAAqBqhC,EAAsBD,EAAA1kB,GAAA,GAAU+kG,EAAA,GAAYlqF,GAAA,EAGnEnlB,EAAiBi9M,MAAQ,SAAA93L,GAAA,OACvBv3B,EAAqBqhC,EAAsBD,EAAA1kB,GAAA,GACtC+kG,EAAA,CACH4tG,MAAOjhO,MAAMb,UAAUyM,OAAOynH,EAAQ4tG,MAAO93L,GAAOhiC,OAAO4V,WAAA,EAGxDiH,CAAA,CDzBO,CAAqCqyG,GAAiBzkH,EAAA,EDJvD,CACb,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,UACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,QACA,KACA,QACA,IACA,KACA,MACA,QACA,MAGA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,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,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAO,YACxB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,YACD,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,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IAAIzB,MAAM,OACpB0vC,EAAW,IAAI1vC,MAAM,OACrBmvC,EAAkB,IAAInvC,MAAM,IAC5B8yC,EAAK,IAAI9yC,MAAM,IACfqvC,EAAU,GACVpmC,EAAU,EACVs9B,EAAU,EAEV//B,EAAM,IAAIxG,MAAM,IAChBsuB,EAAM,IAAItuB,MAAM,IAChB2U,EAAM,IAAI3U,MAAM,IAChB0zH,EAAM,IAAI1zH,MAAM,KAChB4jE,EAAgB,IAAI5jE,MAAM,MAG1BqzC,EAAS,CACX,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGEhlB,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEklG,EAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7DlxG,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEgzB,EAA0B,CAC5B,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAGE7E,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEqjF,EAA4B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC/D5xE,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEuxE,EAA4B,CAC9B,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,cAuKO1jF,EAAkBmD,EAASrhC,GAAA,QAC9BohC,EAAY,EACZ7J,EAAe,EACf3nC,EAAK,IAAIxB,MACJuG,EAAI,EAAGA,GAAK,GAAIA,IAAK,KACvB,IAAI8sH,EAAI,EAAGA,GAAKpgF,EAAQ1sC,GAAI8sH,IAC/B7xH,EAAGoQ,EAAUu3B,IAAiB,GAC9B3nC,EAAGoQ,EAAUu3B,IAAe,GAAK6J,EACjCxxC,EAAGoQ,EAAUu3B,IAAe,GAAK5iC,EACjC4iC,IACA6J,IAEFA,GAAa,SAERxxC,CAAA,UA2DAoyH,EAAU3gF,GAAA,QACbrhC,EAAQqhC,EAAG,GACXD,EAASC,EAAG,GAAK,EACdD,GAAU,GACXphC,EAAS,GAAKohC,IAChB/pC,GAAW,GAAKs9B,GAElByM,MACAzM,EACc,IACG,KAAXt9B,GACFgrH,EAAU,KACVA,EAAU,IAEVA,EAAUhrH,GAEZs9B,EAAU,EACVt9B,EAAU,YAKPgrH,EAAUhhF,GAEjB5D,EAAQzqC,KAAKquC,EAAA,UAGNwgF,EAAUxgF,GACjBghF,EAAWhhF,GAAS,EAAK,KACzBghF,EAAkB,IAARhhF,EAAA,UAyOH+O,EAAU/O,EAAKrhC,EAAOohC,EAAI7J,EAAM3nC,GAAA,QAGnC+E,EAFA8sH,EAAM7xH,EAAK,GACXwiB,EAAYxiB,EAAK,KAKjBwlB,EAAA,SA5OaisB,EAAMrhC,GAAA,IACnBohC,EAAI7J,EAAI3nC,EAAI+E,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ACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEJzS,EAAE,aAAc,iBAChB7gF,EAAK43P,WAAa,kBACT,YAET53P,EAAK63P,WAAa,SAAS73P,GAAA,OAClBA,CAAA,EAETA,EAAK83P,WAAa,SAAS93P,EA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jCp/J,GAAGnrI,OAAS,IACXsxC,EAAKk5P,eAAiB,IAAIxqS,OAAS,IACnCsxC,EAAKm5P,oBAAsB,IAAIzqS,OAAS,IACxCsxC,EAAKo5P,iBAAmB,IAAI1qS,OAAS,OAClCspI,GACF3E,GACA6hK,GACAjvF,GACAsvF,GACAH,GA+3BAsB,GAIAnwE,GACAuwE,GACAH,GACAC,GACAC,GACAn4B,GACA7yQ,GACAkrS,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAIA7C,GACAU,GACAX,GACAr8I,GAz5BAi+I,GAAKhjS,EAAE,KACPijS,GAAKjjS,EAAE,MACPkjS,GAAKljS,EAAE,KACPmjS,GAAKnjS,EAAE,KACP+iS,GAAK,EACLqB,GAAKnB,GACLrU,GAAKsU,GACLiB,GAAIhB,GACJkB,GAAIrB,GACJrB,GAAK,EACLL,GAAK,EACLO,GAAK,EACLN,GAAK,EACLJ,GAAK,EACLK,GAAK,EACLQ,GAAK,EACLrB,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,GACL0B,GAAK,CAAC,EAAG,EAAG,GACZD,GAAK,CAAC,EAAG,EAAG,IACZF,GAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAC1BI,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,GAClBH,GAAK,CAAC,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IACpEZ,GAAK,CACH,GACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,KAEFU,GAAK,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFlqH,GAAK,EACLf,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFa,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA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,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAA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,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,MACA,IACA,MACA,MACA,IACA,MACA,MACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,MACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA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AAK,cACL,IAAK,UACL,IAAK,SACL,IAAK,cACL,IAAK,UACL,IAAK,oBACL,IAAK,kBACL,IAAK,QACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,eACL,IAAK,aACL,IAAK,eACL,IAAK,gBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,iBACL,IAAK,YACL,IAAK,cACL,IAAK,eACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,qBACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,kBACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,cACL,IAAK,iBACL,IAAK,qBACL,IAAK,YACL,IAAK,oBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,WACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,kBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACL,IAAK,yBACL,IAAK,cACL,IAAK,aACL,IAAK,mBACL,IAAK,sBACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,2BACL,IAAK,eACL,IAAK,iBACL,IAAK,aACL,IAAK,iBACL,IAAK,YACL,IAAK,mBACL,IAAK,cACL,IAAK,wBACL,IAAK,kBACL,IAAK,qBACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,iBACL,IAAK,eACL,IAAK,mBACL,IAAK,aACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,iBACL,IAAK,uBACL,IAAK,0BACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,cACL,IAAK,mBACL,IAAK,uBACL,IAAK,mBACL,IAAK,kBACL,IAAK,mBACL,IAAK,cACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,eACL,IAAK,oBACL,IAAK,sBACL,IAAK,sBACL,IAAK,mBACL,IAAK,qBACL,IAAK,qBACL,IAAK,gBACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,gBACL,IAAK,wBACL,IAAK,qBACL,IAAK,SACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,mBACL,IAAK,oBACL,IAAK,eACL,IAAK,oBACL,IAAK,uBACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,qBACL,IAAK,yBACL,IAAK,mBACL,IAAK,WACL,IAAK,iBACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,mBACL,IAAK,mBACL,IAAK,iBACL,IAAK,kBACL,IAAK,oBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,WACL,IAAK,YACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,WACL,IAAK,gBACL,IAAK,gBACL,IAAK,cACL,IAAK,iBACL,IAAK,iBACL,IAAK,oBACL,IAAK,sBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,oBACL,IAAK,eACL,IAAK,gBACL,IAAK,qBAEHJ,GAAO,CACT,EAAG,QACH,EAAG,KACH,EAAG,OACH,EAAG,UACH,EAAG,MACH,EAAG,UACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,SACH,GAAI,KACJ,GAAI,MACJ,GAAI,QACJ,GAAI,SACJ,GAAI,QACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,KACJ,GAAI,OACJ,GAAI,MACJ,GAAI,KACJ,GAAI,QACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,QACJ,GAAI,SACJ,GAAI,QACJ,GAAI,OACJ,GAAI,MACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,QACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,SACJ,GAAI,OACJ,GAAI,WACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,MACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,QACJ,GAAI,SACJ,GAAI,SACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,KACJ,GAAI,KACJ,GAAI,OACJ,GAAI,MACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACJ,GAAI,OACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,UACJ,GAAI,OACJ,GAAI,SACJ,GAAI,SACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,UACJ,GAAI,SACJ,GAAI,SACJ,GAAI,SACJ,GAAI,WACJ,GAAI,SACJ,GAAI,YACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,GAAI,OACJ,GAAI,WACJ,GAAI,SACJ,GAAI,QACJ,GAAI,UACJ,GAAI,SACJ,GAAI,YACJ,GAAI,cACJ,GAAI,YACJ,GAAI,SACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,cACL,IAAK,WACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,UACL,IAAK,aACL,IAAK,OACL,IAAK,QACL,IAAK,YACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,IACL,IAAK,IACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,gBACL,IAAK,iBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,iBACL,IAAK,aACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,aACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,aACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,aACL,IAAK,KACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,iBACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,iBACL,IAAK,aACL,IAAK,YACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,cACL,IAAK,SACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,MACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,YACL,IAAK,cACL,IAAK,QACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,oBACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,QACL,IAAK,cACL,IAAK,cACL,IAAK,WACL,IAAK,eACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,cACL,IAAK,WACL,IAAK,MACL,IAAK,YACL,IAAK,aACL,IAAK,qBACL,IAAK,mBACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,aACL,IAAK,cACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,MACL,IAAK,cACL,IAAK,MACL,IAAK,aACL,IAAK,gBACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,cAEHD,GAAW,CACb,EAAG,EACH,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,E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","sources":["Api/usuario.js","Utils/const.js","context/auth-context.js","jsx/pages/TextoNumero.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","services/AuthService.js","store/actions/AuthActions.js","../node_modules/@n8tb1t/use-scroll-position/lib/index.js","../node_modules/@n8tb1t/use-scroll-position/lib/useIsomorphicLayoutEffect.js","../node_modules/@n8tb1t/use-scroll-position/lib/useScrollPosition.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/file-saver/src/FileSaver.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/html2canvas/node_modules/tslib/tslib.es6.js","../node_modules/html2canvas/node_modules/src/Util.ts","../node_modules/src/css/layout/bounds.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Util.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/utrie/node_modules/src/index.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Trie.ts","../node_modules/html2canvas/node_modules/src/linebreak-trie.ts","../node_modules/html2canvas/node_modules/src/LineBreak.ts","../node_modules/src/css/syntax/tokenizer.ts","../node_modules/src/css/syntax/parser.ts","../node_modules/src/css/types/length.ts","../node_modules/src/css/types/length-percentage.ts","../node_modules/src/css/types/angle.ts","../node_modules/src/css/types/color.ts","../node_modules/src/css/property-descriptors/background-clip.ts","../node_modules/src/css/property-descriptors/background-color.ts","../node_modules/src/css/types/functions/gradient.ts","../node_modules/src/css/types/functions/-prefix-linear-gradient.ts","../node_modules/src/css/types/functions/radial-gradient.ts","../node_modules/src/css/types/functions/-prefix-radial-gradient.ts","../node_modules/src/css/types/image.ts","../node_modules/src/css/property-descriptors/background-size.ts","../node_modules/src/css/types/functions/linear-gradient.ts","../node_modules/src/css/types/functions/-webkit-gradient.ts","../node_modules/src/css/property-descriptors/background-image.ts","../node_modules/src/css/property-descriptors/background-origin.ts","../node_modules/src/css/property-descriptors/background-position.ts","../node_modules/src/css/property-descriptors/background-repeat.ts","../node_modules/src/css/property-descriptors/line-break.ts","../node_modules/src/css/property-descriptors/border-color.ts","../node_modules/src/css/property-descriptors/border-radius.ts","../node_modules/src/css/property-descriptors/border-style.ts","../node_modules/src/css/property-descriptors/border-width.ts","../node_modules/src/css/property-descriptors/color.ts","../node_modules/src/css/property-descriptors/direction.ts","../node_modules/src/css/property-descriptors/display.ts","../node_modules/src/css/property-descriptors/float.ts","../node_modules/src/css/property-descriptors/letter-spacing.ts","../node_modules/src/css/property-descriptors/word-break.ts","../node_modules/src/css/property-descriptors/line-height.ts","../node_modules/src/css/property-descriptors/list-style-image.ts","../node_modules/src/css/property-descriptors/list-style-position.ts","../node_modules/src/css/property-descriptors/list-style-type.ts","../node_modules/src/css/property-descriptors/margin.ts","../node_modules/src/css/property-descriptors/overflow.ts","../node_modules/src/css/property-descriptors/overflow-wrap.ts","../node_modules/src/css/property-descriptors/padding.ts","../node_modules/src/css/property-descriptors/text-align.ts","../node_modules/src/css/property-descriptors/position.ts","../node_modules/src/css/property-descriptors/text-shadow.ts","../node_modules/src/css/property-descriptors/text-transform.ts","../node_modules/src/css/property-descriptors/transform.ts","../node_modules/src/css/property-descriptors/transform-origin.ts","../node_modules/src/css/property-descriptors/visibility.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Util.ts","../node_modules/src/css/property-descriptors/z-index.ts","../node_modules/src/css/types/time.ts","../node_modules/src/css/property-descriptors/opacity.ts","../node_modules/src/css/property-descriptors/text-decoration-color.ts","../node_modules/src/css/property-descriptors/text-decoration-line.ts","../node_modules/src/css/property-descriptors/font-family.ts","../node_modules/src/css/property-descriptors/font-size.ts","../node_modules/src/css/property-descriptors/font-weight.ts","../node_modules/src/css/property-descriptors/font-variant.ts","../node_modules/src/css/property-descriptors/font-style.ts","../node_modules/src/core/bitwise.ts","../node_modules/src/css/property-descriptors/content.ts","../node_modules/src/css/property-descriptors/counter-increment.ts","../node_modules/src/css/property-descriptors/counter-reset.ts","../node_modules/src/css/property-descriptors/duration.ts","../node_modules/src/css/property-descriptors/quotes.ts","../node_modules/src/css/property-descriptors/box-shadow.ts","../node_modules/src/css/property-descriptors/paint-order.ts","../node_modules/src/css/property-descriptors/webkit-text-stroke-color.ts","../node_modules/src/css/property-descriptors/webkit-text-stroke-width.ts","../node_modules/src/css/index.ts","../node_modules/src/core/debugger.ts","../node_modules/src/dom/element-container.ts","../node_modules/html2canvas/node_modules/src/grapheme-break-trie.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/utrie/node_modules/src/index.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Trie.ts","../node_modules/html2canvas/node_modules/src/GraphemeBreak.ts","../node_modules/src/dom/document-cloner.ts","../node_modules/src/core/features.ts","../node_modules/src/css/layout/text.ts","../node_modules/src/dom/text-container.ts","../node_modules/src/dom/replaced-elements/image-element-container.ts","../node_modules/src/dom/replaced-elements/canvas-element-container.ts","../node_modules/src/dom/replaced-elements/svg-element-container.ts","../node_modules/src/dom/elements/li-element-container.ts","../node_modules/src/dom/elements/ol-element-container.ts","../node_modules/src/dom/replaced-elements/input-element-container.ts","../node_modules/src/dom/elements/select-element-container.ts","../node_modules/src/dom/elements/textarea-element-container.ts","../node_modules/src/dom/replaced-elements/iframe-element-container.ts","../node_modules/src/dom/node-parser.ts","../node_modules/src/css/types/functions/counter.ts","../node_modules/src/render/bound-curves.ts","../node_modules/src/core/cache-storage.ts","../node_modules/src/render/vector.ts","../node_modules/src/render/bezier-curve.ts","../node_modules/src/render/effects.ts","../node_modules/src/render/path.ts","../node_modules/src/render/stacking-context.ts","../node_modules/src/render/border.ts","../node_modules/src/render/box-sizing.ts","../node_modules/src/render/background.ts","../node_modules/src/core/util.ts","../node_modules/src/render/font-metrics.ts","../node_modules/src/render/renderer.ts","../node_modules/src/render/canvas/canvas-renderer.ts","../node_modules/src/render/canvas/foreignobject-renderer.ts","../node_modules/src/core/logger.ts","../node_modules/src/core/context.ts","../node_modules/src/index.ts","../node_modules/invariant/browser.js","../node_modules/lodash/lodash.js","../node_modules/perfect-scrollbar/src/lib/css.js","../node_modules/perfect-scrollbar/src/lib/dom.js","../node_modules/perfect-scrollbar/src/lib/class-names.js","../node_modules/perfect-scrollbar/src/lib/event-manager.js","../node_modules/perfect-scrollbar/src/process-scroll-diff.js","../node_modules/perfect-scrollbar/src/lib/util.js","../node_modules/perfect-scrollbar/src/update-geometry.js","../node_modules/perfect-scrollbar/src/handlers/drag-thumb.js","../node_modules/perfect-scrollbar/src/index.js","../node_modules/perfect-scrollbar/src/handlers/click-rail.js","../node_modules/perfect-scrollbar/src/handlers/keyboard.js","../node_modules/perfect-scrollbar/src/handlers/mouse-wheel.js","../node_modules/perfect-scrollbar/src/handlers/touch.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-datepicker/dist/react-datepicker.min.js","../node_modules/react-datepicker/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/defaultLocale/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/addDays/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/addHours/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/addMinutes/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/addMonths/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/addQuarters/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/addWeeks/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/addYears/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/constants/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/differenceInCalendarYears/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/endOfDay/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/endOfYear/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/format/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/getDate/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/getDay/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/getHours/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/startOfISOWeek/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/startOfISOWeekYear/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/getISOWeekYear/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/getISOWeek/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/getMinutes/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/getMonth/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/getQuarter/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/getSeconds/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/getTime/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/getYear/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/isAfter/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/isBefore/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/isDate/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/isEqual/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/isSameDay/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/isSameQuarter/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/isSameYear/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/isValid/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/max/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/min/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parseISO/index.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/Setter.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/Parser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/constants.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/utils.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/parse/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/setHours/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/setMinutes/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/setMonth/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/setQuarter/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/setSeconds/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/setYear/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/set/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/startOfDay/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/startOfQuarter/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/startOfYear/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/subDays/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/subMonths/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/subQuarters/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/subWeeks/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/subYears/index.js","../node_modules/react-datepicker/node_modules/date-fns/esm/toDate/index.js","../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-dom/server.browser.js","../node_modules/react-export-table-to-excel/lib/hooks/useExcel.js","../node_modules/react-export-table-to-excel/lib/index.js","../node_modules/react-export-table-to-excel/lib/lib.js","../node_modules/react-export-table-to-excel/lib/utils/create-table.js","../node_modules/react-export-table-to-excel/lib/utils/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","../node_modules/react-perfect-scrollbar/lib/index.js","../node_modules/react-perfect-scrollbar/lib/scrollbar.js","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-popper/lib/esm/utils.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/react-popper/lib/esm/usePopper.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/react-popper/node_modules/react-fast-compare/index.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/connect/selectorFactory.js","../node_modules/react-redux/es/connect/wrapMapToProps.js","../node_modules/react-redux/es/connect/invalidArgFactory.js","../node_modules/react-redux/es/connect/mergeProps.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/utils/useSyncExternalStore.js","../node_modules/react-redux/es/components/connect.js","../node_modules/react-redux/es/connect/mapStateToProps.js","../node_modules/react-redux/es/connect/mapDispatchToProps.js","../node_modules/react-redux/es/utils/bindActionCreators.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/index.js","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-table/src/publicUtils.js","../node_modules/react-table/src/utils.js","../node_modules/react-table/src/makeDefaultPluginHooks.js","../node_modules/react-table/src/hooks/useColumnVisibility.js","../node_modules/react-table/src/hooks/useTable.js","../node_modules/react-table/src/plugin-hooks/useExpanded.js","../node_modules/react-table/src/filterTypes.js","../node_modules/react-table/src/plugin-hooks/useFilters.js","../node_modules/react-table/src/plugin-hooks/useGlobalFilter.js","../node_modules/react-table/src/aggregations.js","../node_modules/react-table/src/plugin-hooks/useGroupBy.js","../node_modules/react-table/src/sortTypes.js","../node_modules/react-table/src/plugin-hooks/useSortBy.js","../node_modules/react-table/src/plugin-hooks/usePagination.js","../node_modules/react-table/src/plugin-hooks/_UNSTABLE_usePivotColumns.js","../node_modules/react-table/src/plugin-hooks/useRowSelect.js","../node_modules/react-table/src/plugin-hooks/useRowState.js","../node_modules/react-table/src/plugin-hooks/useColumnOrder.js","../node_modules/react-table/src/plugin-hooks/useResizeColumns.js","../node_modules/react-table/src/plugin-hooks/useAbsoluteLayout.js","../node_modules/react-table/src/plugin-hooks/useBlockLayout.js","../node_modules/react-table/src/plugin-hooks/useFlexLayout.js","../node_modules/react-table/src/plugin-hooks/useGridLayout.js","../node_modules/react-table/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/sweetalert2/dist/sweetalert2.all.js","../node_modules/sweetalert/dist/sweetalert.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/warning/warning.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/createChainedFunction.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/Collapse.js","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","jsx/layouts/nav/Menu.js","context/ThemeDemo.js","context/ThemeContext.js","jsx/layouts/nav/SideBar.js","jsx/layouts/nav/NavHader.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/@restart/ui/node_modules/uncontrollable/lib/esm/index.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/@restart/ui/esm/DropdownContext.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/dequal/dist/index.mjs","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@restart/ui/esm/popper.js","../node_modules/@restart/ui/esm/usePopper.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/@restart/ui/esm/useClickOutside.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/ui/esm/DropdownMenu.js","../packages/@react-aria/ssr/src/SSRProvider.tsx","../node_modules/@restart/ui/esm/DropdownToggle.js","../node_modules/@restart/ui/esm/SelectableContext.js","../node_modules/@restart/ui/esm/NavContext.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/@restart/ui/esm/DropdownItem.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/Dropdown.js","../node_modules/@restart/hooks/esm/useForceUpdate.js","../node_modules/@restart/hooks/esm/useEventListener.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-bootstrap/esm/DropdownContext.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/DropdownDivider.js","../node_modules/react-bootstrap/esm/DropdownHeader.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/react-bootstrap/esm/DropdownItem.js","../node_modules/react-bootstrap/esm/DropdownItemText.js","../node_modules/react-bootstrap/esm/InputGroupContext.js","../node_modules/react-bootstrap/esm/NavbarContext.js","../node_modules/react-bootstrap/esm/useWrappedRefWithWarning.js","../node_modules/react-bootstrap/esm/DropdownMenu.js","../node_modules/react-bootstrap/esm/Button.js","../node_modules/react-bootstrap/esm/DropdownToggle.js","../node_modules/react-bootstrap/esm/Dropdown.js","store/selectors/AuthSelectors.js","jsx/layouts/nav/Logout.js","jsx/layouts/nav/Header.js","jsx/layouts/nav/index.js","jsx/ScrollToTop.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/@restart/ui/esm/ModalManager.js","../node_modules/@restart/ui/esm/getScrollbarWidth.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/ui/esm/NoopTransition.js","../node_modules/@restart/ui/esm/utils.js","../node_modules/@restart/ui/esm/useRTGTransitionProps.js","../node_modules/@restart/ui/esm/RTGTransition.js","../node_modules/@restart/ui/esm/ImperativeTransition.js","../node_modules/@restart/ui/esm/Modal.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-bootstrap/esm/BootstrapModalManager.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/react-bootstrap/esm/Modal.js","jsx/pages/sis/ModalOpciones/ModalTimbrado.js","../node_modules/react-bootstrap/esm/Col.js","../node_modules/react-bootstrap/esm/CardBody.js","../node_modules/react-bootstrap/esm/CardFooter.js","../node_modules/react-bootstrap/esm/CardHeaderContext.js","../node_modules/react-bootstrap/esm/CardHeader.js","../node_modules/react-bootstrap/esm/CardImg.js","../node_modules/react-bootstrap/esm/CardImgOverlay.js","../node_modules/react-bootstrap/esm/CardLink.js","../node_modules/react-bootstrap/esm/CardSubtitle.js","../node_modules/react-bootstrap/esm/CardText.js","../node_modules/react-bootstrap/esm/CardTitle.js","../node_modules/react-bootstrap/esm/Card.js","../node_modules/react-bootstrap/esm/Table.js","Api/timbrado.js","jsx/pages/opciones/Otimbrado.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/react-select/dist/useStateManager-7e1e8489.esm.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-5486c51c.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-select/dist/react-select.esm.js","jsx/pages/sis/ModalOpciones/ModalCostos.js","Api/Costos.js","../node_modules/react-loader-spinner/dist/esm/type.js","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/styled-components/node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/styled-components/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/styled-components/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/styled-components/src/utils/interleave.js","../node_modules/styled-components/src/utils/isPlainObject.js","../node_modules/styled-components/src/utils/empties.js","../node_modules/styled-components/src/utils/isFunction.js","../node_modules/styled-components/src/utils/getComponentName.js","../node_modules/styled-components/src/utils/isStyledComponent.js","../node_modules/styled-components/src/constants.js","../node_modules/styled-components/src/utils/error.js","../node_modules/styled-components/src/sheet/GroupedTag.js","../node_modules/styled-components/src/sheet/GroupIDAllocator.js","../node_modules/styled-components/src/sheet/Rehydration.js","../node_modules/styled-components/src/utils/nonce.js","../node_modules/styled-components/src/sheet/dom.js","../node_modules/styled-components/src/sheet/Tag.js","../node_modules/styled-components/src/sheet/Sheet.js","../node_modules/styled-components/src/utils/generateAlphabeticName.js","../node_modules/styled-components/src/utils/hash.js","../node_modules/styled-components/src/utils/isStaticRules.js","../node_modules/styled-components/src/models/ComponentStyle.js","../node_modules/styled-components/src/utils/stylis.js","../node_modules/styled-components/src/utils/stylisPluginInsertRule.js","../node_modules/styled-components/src/models/StyleSheetManager.js","../node_modules/styled-components/src/models/Keyframes.js","../node_modules/styled-components/src/utils/hyphenateStyleName.js","../node_modules/styled-components/src/utils/flatten.js","../node_modules/styled-components/src/utils/isStatelessFunction.js","../node_modules/styled-components/src/utils/addUnitIfNeeded.js","../node_modules/styled-components/src/constructors/css.js","../node_modules/styled-components/src/utils/checkDynamicCreation.js","../node_modules/styled-components/src/utils/determineTheme.js","../node_modules/styled-components/src/utils/escape.js","../node_modules/styled-components/src/utils/generateComponentId.js","../node_modules/styled-components/src/utils/isTag.js","../node_modules/styled-components/src/utils/mixinDeep.js","../node_modules/styled-components/src/models/ThemeProvider.js","../node_modules/styled-components/src/models/StyledComponent.js","../node_modules/styled-components/src/utils/generateDisplayName.js","../node_modules/styled-components/src/utils/joinStrings.js","../node_modules/styled-components/src/utils/domElements.js","../node_modules/styled-components/src/constructors/styled.js","../node_modules/styled-components/src/constructors/constructWithOptions.js","../node_modules/styled-components/src/models/GlobalStyle.js","../node_modules/styled-components/src/constructors/keyframes.js","../node_modules/styled-components/src/models/ServerStyleSheet.js","../node_modules/styled-components/src/base.js","../node_modules/react-loader-spinner/dist/esm/loader/InfinitySpin.js","../node_modules/styled-tools/dist/es/prop.js","../node_modules/react-loader-spinner/dist/esm/loader/RotatingLines.js","../node_modules/react-loader-spinner/dist/esm/helpers.js","../node_modules/react-loader-spinner/dist/esm/loader/TailSpin.js","../node_modules/react-loader-spinner/dist/esm/loader/Triangle.js","jsx/pages/opciones/ColumnFilter.js","jsx/pages/opciones/Columns.js","jsx/pages/opciones/GlobalFilter.js","jsx/pages/opciones/Ocostos.js","jsx/pages/sis/ModalOpciones/ModalSeguros.js","Api/Seguros.js","jsx/pages/opciones/Oseguros.js","jsx/pages/sis/ModalOpciones/ModalFDP.js","Api/formaPago.js","jsx/pages/opciones/Oformasdepago.js","jsx/pages/sis/ModalOpciones/ModalSucursal.js","Api/sucursal.js","jsx/pages/opciones/Osucursal.js","jsx/pages/sis/ModalOpciones/ModalMoneda.js","Api/moneda.js","jsx/pages/opciones/Omoneda.js","jsx/pages/FacturaContado.js","../node_modules/react-bootstrap/esm/Row.js","jsx/pages/facturascontado/ColumnFilter.js","jsx/pages/facturascontado/Columns.js","jsx/pages/facturascontado/GlobalFilter.js","Api/facturacion.js","jsx/pages/facturascontado/Depositado.js","jsx/pages/facturascontado/ModalDepositar/ModalDepositar.js","jsx/pages/facturascontado/Nodepositado.js","jsx/pages/FacturaCredito.js","jsx/pages/ColumnFilter.js","jsx/pages/Columns.js","jsx/pages/GlobalFilter.js","../node_modules/fflate/esm/browser.js","../node_modules/jspdf/src/libs/globalObject.js","../node_modules/jspdf/src/libs/console.js","../node_modules/jspdf/src/libs/FileSaver.js","../node_modules/jspdf/src/libs/AtobBtoa.js","../node_modules/jspdf/src/libs/rgbcolor.js","../node_modules/jspdf/src/libs/md5.js","../node_modules/jspdf/src/libs/rc4.js","../node_modules/jspdf/src/libs/pdfsecurity.js","../node_modules/jspdf/src/libs/pdfname.js","../node_modules/jspdf/src/jspdf.js","../node_modules/jspdf/src/modules/acroform.js","../node_modules/jspdf/src/libs/fontFace.js","../node_modules/jspdf/src/modules/addimage.js","../node_modules/jspdf/src/modules/annotations.js","../node_modules/jspdf/src/modules/arabic.js","../node_modules/jspdf/src/modules/autoprint.js","../node_modules/jspdf/src/modules/canvas.js","../node_modules/jspdf/src/modules/cell.js","../node_modules/jspdf/src/modules/javascript.js","../node_modules/jspdf/src/modules/context2d.js","../node_modules/jspdf/src/modules/filters.js","../node_modules/jspdf/src/modules/fileloading.js","../node_modules/jspdf/src/modules/html.js","../node_modules/jspdf/src/modules/outline.js","../node_modules/jspdf/src/modules/jpeg_support.js","../node_modules/jspdf/src/libs/png.js","../node_modules/jspdf/src/modules/split_text_to_size.js","../node_modules/jspdf/src/libs/omggif.js","../node_modules/jspdf/src/libs/JPEGEncoder.js","../node_modules/jspdf/src/libs/BMPDecoder.js","../node_modules/jspdf/src/libs/WebPDecoder.js","../node_modules/jspdf/src/modules/png_support.js","../node_modules/jspdf/src/modules/gif_support.js","../node_modules/jspdf/src/modules/bmp_support.js","../node_modules/jspdf/src/modules/webp_support.js","../node_modules/jspdf/src/modules/rgba_support.js","../node_modules/jspdf/src/modules/setlanguage.js","../node_modules/jspdf/src/modules/standard_fonts_metrics.js","../node_modules/jspdf/src/modules/ttfsupport.js","../node_modules/jspdf/src/modules/svg.js","../node_modules/jspdf/src/modules/total_pages.js","../node_modules/jspdf/src/modules/viewerpreferences.js","../node_modules/jspdf/src/modules/xmp_metadata.js","../node_modules/jspdf/src/modules/utf8.js","../node_modules/jspdf/src/modules/vfs.js","../node_modules/jspdf/src/libs/bidiEngine.js","../node_modules/jspdf/src/libs/ttffont.js","../node_modules/react-to-pdf/dist/src/constants.ts","../node_modules/react-to-pdf/dist/src/converter.ts","../node_modules/react-to-pdf/dist/src/utils.ts","../node_modules/react-to-pdf/dist/src/index.ts","../node_modules/xlsx/xlsx.mjs","../node_modules/react-json-to-excel/dist/index.es.js","jsx/pages/sis/ModalOpciones/ModalReporteDia.js","jsx/pages/Reportes.js","jsx/pages/sis/ModalOpciones/ModalPDV.js","Api/puntoVenta.js","jsx/pages/opciones/Opuntodeventa.js","jsx/pages/facturacion/ColumnFilter.js","jsx/pages/facturacion/Columns.js","jsx/pages/facturacion/GlobalFilter.js","jsx/pages/sis/ModalFacturacion/ModalAgregarCliente.js","jsx/pages/sis/ModalFacturacion/ModalCliente.js","Api/cliente.js","jsx/pages/facturacion/Clientes.js","jsx/pages/facturacion/Facturas.js","jsx/pages/facturacion/Listadeventas.js","../node_modules/react-bootstrap/esm/ButtonGroup.js","jsx/pages/facturacion/Fichas/FichaCliente.js","jsx/pages/facturacion/Fichas/ModalFichaFactura/ModalDeposito.js","jsx/pages/facturacion/Fichas/ModalFichaFactura/ModalModFecha.js","jsx/pages/pdfWriter.js","jsx/pages/pdfWriterDeskjet.js","jsx/pages/pdfWriterHP.js","jsx/pages/facturacion/Fichas/FichaFactura.js","jsx/pages/facturacion/Fichas/PdfFactura.js","jsx/pages/facturascredito/Vencimientos.js","jsx/pages/facturascredito/ColumnFilter.js","jsx/pages/facturascredito/Columns.js","jsx/pages/facturascredito/GlobalFilter.js","jsx/pages/facturascredito/Cobranza.js","../node_modules/react-bootstrap/esm/Feedback.js","../node_modules/react-bootstrap/esm/FormContext.js","../node_modules/react-bootstrap/esm/FormCheckInput.js","../node_modules/react-bootstrap/esm/FormCheckLabel.js","../node_modules/react-bootstrap/esm/FormCheck.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/FormControl.js","../node_modules/react-bootstrap/esm/FormFloating.js","../node_modules/react-bootstrap/esm/FormGroup.js","../node_modules/react-bootstrap/esm/FormLabel.js","../node_modules/react-bootstrap/esm/FormRange.js","../node_modules/react-bootstrap/esm/FormSelect.js","../node_modules/react-bootstrap/esm/FormText.js","../node_modules/react-bootstrap/esm/Switch.js","../node_modules/react-bootstrap/esm/FloatingLabel.js","../node_modules/react-bootstrap/esm/Form.js","jsx/pages/TableRows.js","jsx/pages/Preview.js","jsx/pages/Generarfactura.js","jsx/AppLogout.js","jsx/pages/compras/ColumnFilter.js","jsx/pages/compras/Columns.js","jsx/pages/compras/GlobalFilter.js","jsx/pages/compras/ModalCompras/AgregarProveedores.js","Api/Proveedores.js","jsx/pages/compras/Proveedores.js","jsx/pages/compras/Compras.js","jsx/pages/compras/Listadecompras.js","jsx/pages/sis/ModalOpciones/ModalReporteCompra.js","jsx/pages/compras/Reportecompras.js","../node_modules/date-fns/locale/es/_lib/formatDistance.mjs","../node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","../node_modules/date-fns/locale/es/_lib/formatLong.mjs","../node_modules/date-fns/locale/es/_lib/formatRelative.mjs","../node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","../node_modules/date-fns/locale/es/_lib/localize.mjs","../node_modules/date-fns/locale/_lib/buildMatchFn.mjs","../node_modules/date-fns/locale/es/_lib/match.mjs","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","../node_modules/date-fns/locale/es.mjs","jsx/pages/compras/TableRows.js","jsx/pages/compras/ModalCompras/PreviewCompra.js","jsx/pages/compras/GenerarCompra.js","jsx/pages/compras/FichaFacturaCompra.js","jsx/index.js","App.js","reportWebVitals.js","../node_modules/redux/es/redux.js","store/actions/PostTypes.js","store/reducers/PostsReducer.js","../node_modules/redux-thunk/es/index.js","store/reducers/AuthReducer.js","store/reducers/Reducers.js","store/store.js","index.js"],"sourcesContent":["import { CALL_API2 } from \"../Utils/const\";\r\nimport { getAuthToken } from \"../context/auth-context\";\r\n\r\nexport async function getAllUsuarios() {\r\n const token = getAuthToken();\r\n const result = await fetch(`${CALL_API2}/usuario`, {\r\n headers: { Authorization: `Bearer ${token}` },\r\n });\r\n\r\n const data = await result.json();\r\n\r\n if (!result.ok) {\r\n throw new Error(data.message);\r\n }\r\n\r\n return data.result;\r\n}\r\n\r\nexport async function getUsuarioById(idUsuario) {\r\n const token = getAuthToken();\r\n const response = await fetch(`${CALL_API2}/usuario/${idUsuario}`, {\r\n headers: { Authorization: `Bearer ${token}` },\r\n });\r\n const data = await response.json();\r\n\r\n if (!response.ok) {\r\n throw new Error(data.message);\r\n }\r\n return data.result;\r\n}\r\n\r\nexport async function getUserCredentials() {\r\n const token = getAuthToken();\r\n const response = await fetch(`${CALL_API2}/user-credentials`, {\r\n headers: { Authorization: \"Bearer \" + token },\r\n });\r\n const data = await response.json();\r\n if (!response.ok) {\r\n throw new Error(data.message);\r\n }\r\n return data.userData;\r\n}\r\n\r\nexport async function signUpUser(userObject) {\r\n const { usuario, password, cedula, nombre } = userObject;\r\n const token = getAuthToken();\r\n const response = await fetch(`${CALL_API2}/signup`, {\r\n method: \"POST\",\r\n headers: {\r\n headers: { Authorization: `Bearer ${token}` },\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n usuario: usuario,\r\n password: password,\r\n cedula: cedula,\r\n nombre: nombre,\r\n }),\r\n });\r\n\r\n const data = await response.json();\r\n\r\n if (!response.ok) {\r\n throw new Error(data.message);\r\n }\r\n\r\n return data.isSaved;\r\n}\r\n\r\nexport async function login(usuarioObject) {\r\n const { usuario, password } = usuarioObject;\r\n const response = await fetch(`${CALL_API2}/login`, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({\r\n usuario: usuario,\r\n password: password,\r\n }),\r\n });\r\n\r\n const data = await response.json();\r\n if (!response.ok) {\r\n console.log(data);\r\n throw new Error(data.message);\r\n }\r\n\r\n return data.token;\r\n}\r\n","export const CALL_API2 = \"https://eethsa.xyz/eethsa2/api\";\r\n\r\nexport const CONTADO = Object.freeze({\r\n value: \"Contado\",\r\n label: \"Contado\",\r\n});\r\n\r\nexport const CREDITO = Object.freeze({ value: \"Credito\", label: \"Credito\" });\r\nexport const Cajachica = Object.freeze({ value: \"Caja Chica\", label: \"Caja Chica\" });\r\nexport const Proveedores = Object.freeze({ value: \"Proveedores\", label: \"Proveedores\" });\r\nexport const Prestadores = Object.freeze({ value: \"Prestadores\", label: \"Prestadores\" });\r\nexport const TYPE_FACTURA = [CONTADO, CREDITO];\r\nexport const TYPE_DESTINO_COMPRA = [Cajachica, Proveedores,Prestadores];\r\n","import { useEffect, createContext } from \"react\";\r\n\r\nconst AuthContext = createContext({\r\n token: \"\",\r\n isLogged: false,\r\n login: (token, expirationDate) => {},\r\n logout: () => {},\r\n});\r\n\r\nexport function getTokenDuration() {\r\n const storedTokenDuration = localStorage.getItem(\"expirationDate\");\r\n const expirationDate = new Date(storedTokenDuration);\r\n const now = new Date();\r\n const duration = expirationDate - now;\r\n return duration;\r\n}\r\n\r\nexport function getAuthToken() {\r\n const token = localStorage.getItem(\"token\");\r\n if (!token) return null;\r\n const tokenDuration = getTokenDuration();\r\n if (tokenDuration < 0) return null;\r\n return token;\r\n}\r\n\r\nexport function logout() {\r\n localStorage.removeItem(\"token\");\r\n localStorage.removeItem(\"expirationDate\");\r\n}\r\n\r\nexport function login(token, expirationDate) {\r\n localStorage.setItem(\"token\", token);\r\n localStorage.setItem(\"expirationDate\", expirationDate);\r\n}\r\n\r\nexport const AuthContextProvider = (props) => {\r\n const { children } = props;\r\n const tokenData = getAuthToken();\r\n const isAuthUser = tokenData ? true : false;\r\n\r\n useEffect(() => {\r\n if (!tokenData) logout();\r\n }, [tokenData]);\r\n\r\n const contextValue = {\r\n token: tokenData,\r\n isLogged: isAuthUser,\r\n login: login,\r\n logout: logout,\r\n };\r\n\r\n return (\r\n {children}\r\n );\r\n};\r\n\r\nexport default AuthContext;\r\n","'use strict';\r\n\r\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\n\r\n/*\r\n * NumerosALetras.js\r\n * The MIT License (MIT)\r\n *\r\n * Copyright (c) 2016 Daniel M. Spiridione\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the 'Software'), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in all\r\n * copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n * SOFTWARE.\r\n *\r\n * @author Daniel M. Spiridione (info@daniel-spiridione.com.ar)\r\n */\r\nfunction unidades(num) {\r\n switch (num) {\r\n case 1:\r\n return 'Un';\r\n case 2:\r\n return 'Dos';\r\n case 3:\r\n return 'Tres';\r\n case 4:\r\n return 'Cuatro';\r\n case 5:\r\n return 'Cinco';\r\n case 6:\r\n return 'Seis';\r\n case 7:\r\n return 'Siete';\r\n case 8:\r\n return 'Ocho';\r\n case 9:\r\n return 'Nueve';\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nfunction decenasY(strSin, numUnidades) {\r\n if (numUnidades > 0) {\r\n return strSin + ' y ' + unidades(numUnidades);\r\n }\r\n\r\n return strSin;\r\n}\r\n\r\nfunction decenas(num) {\r\n var numDecena = Math.floor(num / 10);\r\n var numUnidad = num - numDecena * 10;\r\n\r\n switch (numDecena) {\r\n case 1:\r\n switch (numUnidad) {\r\n case 0:\r\n return 'Diez';\r\n case 1:\r\n return 'Once';\r\n case 2:\r\n return 'Doce';\r\n case 3:\r\n return 'Trece';\r\n case 4:\r\n return 'Catorce';\r\n case 5:\r\n return 'Quince';\r\n default:\r\n return 'Dieci' + unidades(numUnidad).toLowerCase();\r\n }\r\n case 2:\r\n switch (numUnidad) {\r\n case 0:\r\n return 'Veinte';\r\n default:\r\n return 'Veinti' + unidades(numUnidad).toLowerCase();\r\n }\r\n case 3:\r\n return decenasY('Treinta', numUnidad);\r\n case 4:\r\n return decenasY('Cuarenta', numUnidad);\r\n case 5:\r\n return decenasY('Cincuenta', numUnidad);\r\n case 6:\r\n return decenasY('Sesenta', numUnidad);\r\n case 7:\r\n return decenasY('Setenta', numUnidad);\r\n case 8:\r\n return decenasY('Ochenta', numUnidad);\r\n case 9:\r\n return decenasY('Noventa', numUnidad);\r\n case 0:\r\n return unidades(numUnidad);\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nfunction centenas(num) {\r\n var numCentenas = Math.floor(num / 100);\r\n var numDecenas = num - numCentenas * 100;\r\n\r\n switch (numCentenas) {\r\n case 1:\r\n if (numDecenas > 0) {\r\n return 'Ciento ' + decenas(numDecenas);\r\n }\r\n return 'Cien';\r\n case 2:\r\n return 'Doscientos ' + decenas(numDecenas);\r\n case 3:\r\n return 'Trescientos ' + decenas(numDecenas);\r\n case 4:\r\n return 'Cuatrocientos ' + decenas(numDecenas);\r\n case 5:\r\n return 'Quinientos ' + decenas(numDecenas);\r\n case 6:\r\n return 'Seiscientos ' + decenas(numDecenas);\r\n case 7:\r\n return 'Setecientos ' + decenas(numDecenas);\r\n case 8:\r\n return 'Ochocientos ' + decenas(numDecenas);\r\n case 9:\r\n return 'Novecientos ' + decenas(numDecenas);\r\n default:\r\n return decenas(numDecenas);\r\n }\r\n}\r\n\r\nfunction seccion(num, divisor, strSingular, strPlural) {\r\n var numCientos = Math.floor(num / divisor);\r\n var numResto = num - numCientos * divisor;\r\n\r\n var letras = '';\r\n\r\n if (numCientos > 0) {\r\n if (numCientos > 1) {\r\n letras = centenas(numCientos) + ' ' + strPlural;\r\n } else {\r\n letras = strSingular;\r\n }\r\n }\r\n\r\n if (numResto > 0) {\r\n letras += '';\r\n }\r\n\r\n return letras;\r\n}\r\n\r\nfunction miles(num) {\r\n var divisor = 1000;\r\n var numCientos = Math.floor(num / divisor);\r\n var numResto = num - numCientos * divisor;\r\n var strMiles = seccion(num, divisor, 'Un Mil', 'Mil');\r\n var strCentenas = centenas(numResto);\r\n\r\n if (strMiles === '') {\r\n return strCentenas;\r\n }\r\n\r\n return (strMiles + ' ' + strCentenas).trim();\r\n}\r\n\r\nfunction millones(num) {\r\n var divisor = 1000000;\r\n var numCientos = Math.floor(num / divisor);\r\n var numResto = num - numCientos * divisor;\r\n var strMillones = seccion(num, divisor, 'Un Millón', 'Millones');\r\n var strMiles = miles(numResto);\r\n\r\n if (strMillones === '') {\r\n return strMiles;\r\n }\r\n\r\n return (strMillones + ' ' + strMiles).trim();\r\n}\r\n\r\nfunction NumerosALetras(num) {\r\n var data = {\r\n numero: num,\r\n enteros: Math.floor(num),\r\n centavos: Math.round(num * 100) - Math.floor(num) * 100,\r\n letrasCentavos: '',\r\n letrasMonedaPlural: '',\r\n letrasMonedaSingular: '',\r\n letrasMonedaCentavoPlural: '',\r\n letrasMonedaCentavoSingular: ''\r\n };\r\n\r\n if (data.centavos >= 0) {\r\n data.letrasCentavos = function () {\r\n if (data.centavos >= 1 & data.centavos <= 9) {\r\n return '' + data.centavos + data.letrasMonedaCentavoSingular;\r\n }\r\n\r\n if (data.centavos === 0) {\r\n return '' + data.letrasMonedaCentavoSingular;\r\n }\r\n\r\n return data.centavos + data.letrasMonedaCentavoPlural;\r\n }();\r\n }\r\n\r\n if (data.enteros === 0) {\r\n return ('Cero ' + data.letrasMonedaPlural + ' ' + data.letrasCentavos).trim();\r\n }\r\n\r\n if (data.enteros === 1) {\r\n return (millones(data.enteros) + ' ' + data.letrasMonedaSingular + ' ' + data.letrasCentavos).trim();\r\n }\r\n\r\n return (millones(data.enteros) + ' ' + data.letrasMonedaPlural + ' ' + data.letrasCentavos).trim();\r\n}\r\n\r\nexports.NumerosALetras = NumerosALetras;","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import axios from 'axios';\r\nimport swal from \"sweetalert\";\r\nimport {\r\n loginConfirmedAction,\r\n Logout,\r\n} from '../store/actions/AuthActions';\r\n\r\nexport function signUp(email, password) {\r\n //axios call\r\n const postData = {\r\n email,\r\n password,\r\n returnSecureToken: true,\r\n };\r\n return axios.post(\r\n `https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=AIzaSyD3RPAp3nuETDn9OQimqn_YF6zdzqWITII`,\r\n postData,\r\n );\r\n}\r\n\r\nexport function login(email, password) {\r\n const postData = {\r\n email,\r\n password,\r\n returnSecureToken: true,\r\n };\r\n return axios.post(\r\n `https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=AIzaSyD3RPAp3nuETDn9OQimqn_YF6zdzqWITII`,\r\n postData,\r\n );\r\n}\r\n\r\nexport function formatError(errorResponse) {\r\n switch (errorResponse.error.message) {\r\n case 'EMAIL_EXISTS':\r\n //return 'Email already exists';\r\n swal(\"Oops\", \"Email already exists\", \"error\");\r\n break;\r\n case 'EMAIL_NOT_FOUND':\r\n //return 'Email not found';\r\n swal(\"Oops\", \"Email not found\", \"error\",{ button: \"Try Again!\",});\r\n break;\r\n case 'INVALID_PASSWORD':\r\n //return 'Invalid Password';\r\n swal(\"Oops\", \"Invalid Password\", \"error\",{ button: \"Try Again!\",});\r\n break;\r\n case 'USER_DISABLED':\r\n return 'User Disabled';\r\n\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nexport function saveTokenInLocalStorage(tokenDetails) {\r\n tokenDetails.expireDate = new Date(\r\n new Date().getTime() + tokenDetails.expiresIn * 1000,\r\n );\r\n localStorage.setItem('userDetails', JSON.stringify(tokenDetails));\r\n}\r\n\r\nexport function runLogoutTimer(dispatch, timer, navigate) {\r\n setTimeout(() => {\r\n //dispatch(Logout(history));\r\n dispatch(Logout(navigate));\r\n }, timer);\r\n}\r\n\r\nexport function checkAutoLogin(dispatch, navigate) {\r\n const tokenDetailsString = localStorage.getItem('userDetails');\r\n let tokenDetails = '';\r\n if (!tokenDetailsString) {\r\n dispatch(Logout(navigate));\r\n\t\treturn;\r\n }\r\n\r\n tokenDetails = JSON.parse(tokenDetailsString);\r\n let expireDate = new Date(tokenDetails.expireDate);\r\n let todaysDate = new Date();\r\n\r\n if (todaysDate > expireDate) {\r\n dispatch(Logout(navigate));\r\n return;\r\n }\r\n\t\t\r\n dispatch(loginConfirmedAction(tokenDetails));\r\n\t\r\n const timer = expireDate.getTime() - todaysDate.getTime();\r\n runLogoutTimer(dispatch, timer, navigate);\r\n}\r\n\r\nexport function isLogin() {\r\n const tokenDetailsString = localStorage.getItem('userDetails');\r\n\r\n if (tokenDetailsString) {\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n}\r\n","\r\n\r\nimport {\r\n formatError,\r\n login,\r\n runLogoutTimer,\r\n saveTokenInLocalStorage,\r\n signUp,\r\n} from \"../../services/AuthService\";\r\n\r\nexport const SIGNUP_CONFIRMED_ACTION = \"[signup action] confirmed signup\";\r\nexport const SIGNUP_FAILED_ACTION = \"[signup action] failed signup\";\r\nexport const LOGIN_CONFIRMED_ACTION = \"[login action] confirmed login\";\r\nexport const LOGIN_FAILED_ACTION = \"[login action] failed login\";\r\nexport const LOADING_TOGGLE_ACTION = \"[Loading action] toggle loading\";\r\nexport const LOGOUT_ACTION = \"[Logout action] logout action\";\r\n\r\nexport function signupAction(email, password, navigate) {\r\n return (dispatch) => {\r\n signUp(email, password)\r\n .then((response) => {\r\n saveTokenInLocalStorage(response.data);\r\n runLogoutTimer(\r\n dispatch,\r\n response.data.expiresIn * 1000\r\n //history,\r\n );\r\n dispatch(confirmedSignupAction(response.data));\r\n navigate(\"/Facturas\");\r\n //history.push('/dashboard');\r\n })\r\n .catch((error) => {\r\n const errorMessage = formatError(error.response.data);\r\n dispatch(signupFailedAction(errorMessage));\r\n });\r\n };\r\n}\r\n\r\nexport function Logout(navigate) {\r\n localStorage.removeItem(\"userDetails\");\r\n navigate(\"/login\");\r\n //history.push('/login');\r\n\r\n return {\r\n type: LOGOUT_ACTION,\r\n };\r\n}\r\n\r\nexport function loginAction(email, password, navigate) {\r\n return (dispatch) => {\r\n login(email, password)\r\n .then((response) => {\r\n saveTokenInLocalStorage(response.data);\r\n //runLogoutTimer(dispatch, response.data.expiresIn * 1000, navigate);\r\n dispatch(loginConfirmedAction(response.data));\r\n //console.log('kk------1');\r\n //console.log(kk);\r\n //console.log(response.data);\r\n //console.log('kk------2');\r\n //return response.data;\r\n //return 'success';\r\n //history.push('/dashboard');\r\n navigate(\"/Facturas\");\r\n })\r\n .catch((error) => {\r\n //console.log('error');\r\n //console.log(error);\r\n const errorMessage = formatError(error.response.data);\r\n dispatch(loginFailedAction(errorMessage));\r\n });\r\n };\r\n}\r\n\r\nexport function loginFailedAction(data) {\r\n return {\r\n type: LOGIN_FAILED_ACTION,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function loginConfirmedAction(data) {\r\n return {\r\n type: LOGIN_CONFIRMED_ACTION,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function confirmedSignupAction(payload) {\r\n return {\r\n type: SIGNUP_CONFIRMED_ACTION,\r\n payload,\r\n };\r\n}\r\n\r\nexport function signupFailedAction(message) {\r\n return {\r\n type: SIGNUP_FAILED_ACTION,\r\n payload: message,\r\n };\r\n}\r\n\r\nexport function loadingToggleAction(status) {\r\n return {\r\n type: LOADING_TOGGLE_ACTION,\r\n payload: status,\r\n };\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar useScrollPosition_1 = require(\"./useScrollPosition\");\r\nObject.defineProperty(exports, \"useScrollPosition\", { enumerable: true, get: function () { return useScrollPosition_1.useScrollPosition; } });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.useIsomorphicLayoutEffect = void 0;\r\nconst react_1 = require(\"react\");\r\nexports.useIsomorphicLayoutEffect = typeof window !== 'undefined' ? react_1.useLayoutEffect : react_1.useEffect;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.useScrollPosition = void 0;\r\nconst react_1 = require(\"react\");\r\nconst useIsomorphicLayoutEffect_1 = require(\"./useIsomorphicLayoutEffect\");\r\nconst isBrowser = typeof window !== `undefined`;\r\nconst zeroPosition = { x: 0, y: 0 };\r\nconst getClientRect = (element) => element === null || element === void 0 ? void 0 : element.getBoundingClientRect();\r\nconst getScrollPosition = ({ element, useWindow, boundingElement, }) => {\r\n if (!isBrowser) {\r\n return zeroPosition;\r\n }\r\n if (useWindow) {\r\n return { x: window.scrollX, y: window.scrollY };\r\n }\r\n const targetPosition = getClientRect((element === null || element === void 0 ? void 0 : element.current) || document.body);\r\n const containerPosition = getClientRect(boundingElement === null || boundingElement === void 0 ? void 0 : boundingElement.current);\r\n if (!targetPosition) {\r\n return zeroPosition;\r\n }\r\n return containerPosition\r\n ? {\r\n x: (containerPosition.x || 0) - (targetPosition.x || 0),\r\n y: (containerPosition.y || 0) - (targetPosition.y || 0),\r\n }\r\n : { x: targetPosition.left, y: targetPosition.top };\r\n};\r\nexports.useScrollPosition = (effect, deps, element, useWindow, wait, boundingElement) => {\r\n const position = react_1.useRef(getScrollPosition({ useWindow, boundingElement }));\r\n let throttleTimeout = null;\r\n const callBack = () => {\r\n const currPos = getScrollPosition({ element, useWindow, boundingElement });\r\n effect({ prevPos: position.current, currPos });\r\n position.current = currPos;\r\n throttleTimeout = null;\r\n };\r\n useIsomorphicLayoutEffect_1.useIsomorphicLayoutEffect(() => {\r\n var _a;\r\n if (!isBrowser) {\r\n return undefined;\r\n }\r\n const handleScroll = () => {\r\n if (wait) {\r\n if (throttleTimeout === null) {\r\n throttleTimeout = setTimeout(callBack, wait);\r\n }\r\n }\r\n else {\r\n callBack();\r\n }\r\n };\r\n if (boundingElement) {\r\n (_a = boundingElement.current) === null || _a === void 0 ? void 0 : _a.addEventListener('scroll', handleScroll, { passive: true });\r\n }\r\n else {\r\n window.addEventListener('scroll', handleScroll, { passive: true });\r\n }\r\n return () => {\r\n var _a;\r\n if (boundingElement) {\r\n (_a = boundingElement.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('scroll', handleScroll);\r\n }\r\n else {\r\n window.removeEventListener('scroll', handleScroll);\r\n }\r\n if (throttleTimeout) {\r\n clearTimeout(throttleTimeout);\r\n }\r\n };\r\n }, deps);\r\n};\r\nexports.useScrollPosition.defaultProps = {\r\n deps: [],\r\n element: false,\r\n useWindow: false,\r\n wait: null,\r\n boundingElement: false,\r\n};\r\n","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType\n >,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnNavigationImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnNavigation()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\n }\n );\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","/*\n* FileSaver.js\n* A saveAs() FileSaver implementation.\n*\n* By Eli Grey, http://eligrey.com\n*\n* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n* source : http://purl.eligrey.com/github/FileSaver.js\n*/\n\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nvar _global = typeof window === 'object' && window.window === window\n ? window : typeof self === 'object' && self.self === self\n ? self : typeof global === 'object' && global.global === global\n ? global\n : this\n\nfunction bom (blob, opts) {\n if (typeof opts === 'undefined') opts = { autoBom: false }\n else if (typeof opts !== 'object') {\n console.warn('Deprecated: Expected third argument to be a object')\n opts = { autoBom: !opts }\n }\n\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (opts.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type })\n }\n return blob\n}\n\nfunction download (url, name, opts) {\n var xhr = new XMLHttpRequest()\n xhr.open('GET', url)\n xhr.responseType = 'blob'\n xhr.onload = function () {\n saveAs(xhr.response, name, opts)\n }\n xhr.onerror = function () {\n console.error('could not download file')\n }\n xhr.send()\n}\n\nfunction corsEnabled (url) {\n var xhr = new XMLHttpRequest()\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false)\n try {\n xhr.send()\n } catch (e) {}\n return xhr.status >= 200 && xhr.status <= 299\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click (node) {\n try {\n node.dispatchEvent(new MouseEvent('click'))\n } catch (e) {\n var evt = document.createEvent('MouseEvents')\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,\n 20, false, false, false, false, 0, null)\n node.dispatchEvent(evt)\n }\n}\n\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nvar isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)\n\nvar saveAs = _global.saveAs || (\n // probably in some web worker\n (typeof window !== 'object' || window !== _global)\n ? function saveAs () { /* noop */ }\n\n // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView\n : ('download' in HTMLAnchorElement.prototype && !isMacOSWebView)\n ? function saveAs (blob, name, opts) {\n var URL = _global.URL || _global.webkitURL\n var a = document.createElement('a')\n name = name || blob.name || 'download'\n\n a.download = name\n a.rel = 'noopener' // tabnabbing\n\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob\n if (a.origin !== location.origin) {\n corsEnabled(a.href)\n ? download(blob, name, opts)\n : click(a, a.target = '_blank')\n } else {\n click(a)\n }\n } else {\n // Support blobs\n a.href = URL.createObjectURL(blob)\n setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s\n setTimeout(function () { click(a) }, 0)\n }\n }\n\n // Use msSaveOrOpenBlob as a second approach\n : 'msSaveOrOpenBlob' in navigator\n ? function saveAs (blob, name, opts) {\n name = name || blob.name || 'download'\n\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts)\n } else {\n var a = document.createElement('a')\n a.href = blob\n a.target = '_blank'\n setTimeout(function () { click(a) })\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name)\n }\n }\n\n // Fallback to using FileReader and a popup\n : function saveAs (blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank')\n if (popup) {\n popup.document.title =\n popup.document.body.innerText = 'downloading...'\n }\n\n if (typeof blob === 'string') return download(blob, name, opts)\n\n var force = blob.type === 'application/octet-stream'\n var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari\n var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent)\n\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n var reader = new FileReader()\n reader.onloadend = function () {\n var url = reader.result\n url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;')\n if (popup) popup.location.href = url\n else location = url\n popup = null // reverse-tabnabbing #460\n }\n reader.readAsDataURL(blob)\n } else {\n var URL = _global.URL || _global.webkitURL\n var url = URL.createObjectURL(blob)\n if (popup) popup.location = url\n else location.href = url\n popup = null // reverse-tabnabbing #460\n setTimeout(function () { URL.revokeObjectURL(url) }, 4E4) // 40s\n }\n }\n)\n\n_global.saveAs = saveAs.saveAs = saveAs\n\nif (typeof module !== 'undefined') {\n module.exports = saveAs;\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {Context} from '../../core/context';\n\nexport class Bounds {\n constructor(readonly left: number, readonly top: number, readonly width: number, readonly height: number) {}\n\n add(x: number, y: number, w: number, h: number): Bounds {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n }\n\n static fromClientRect(context: Context, clientRect: ClientRect): Bounds {\n return new Bounds(\n clientRect.left + context.windowBounds.left,\n clientRect.top + context.windowBounds.top,\n clientRect.width,\n clientRect.height\n );\n }\n\n static fromDOMRectList(context: Context, domRectList: DOMRectList): Bounds {\n const domRect = Array.from(domRectList).find((rect) => rect.width !== 0);\n return domRect\n ? new Bounds(\n domRect.left + context.windowBounds.left,\n domRect.top + context.windowBounds.top,\n domRect.width,\n domRect.height\n )\n : Bounds.EMPTY;\n }\n\n static EMPTY = new Bounds(0, 0, 0, 0);\n}\n\nexport const parseBounds = (context: Context, node: Element): Bounds => {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n};\n\nexport const parseDocumentSize = (document: Document): Bounds => {\n const body = document.body;\n const documentElement = document.documentElement;\n\n if (!body || !documentElement) {\n throw new Error(`Unable to get document size`);\n }\n const width = Math.max(\n Math.max(body.scrollWidth, documentElement.scrollWidth),\n Math.max(body.offsetWidth, documentElement.offsetWidth),\n Math.max(body.clientWidth, documentElement.clientWidth)\n );\n\n const height = Math.max(\n Math.max(body.scrollHeight, documentElement.scrollHeight),\n Math.max(body.offsetHeight, documentElement.offsetHeight),\n Math.max(body.clientHeight, documentElement.clientHeight)\n );\n\n return new Bounds(0, 0, width, height);\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","export const base64 =\n 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\nexport const byteLength = 39664;\n","'use strict';\n\nimport {createTrieFromBase64} from 'utrie';\nimport {base64, byteLength} from './linebreak-trie';\nimport {fromCodePoint, toCodePoints} from './Util';\n\nexport const LETTER_NUMBER_MODIFIER = 50;\n\n// Non-tailorable Line Breaking Classes\nconst BK = 1; // Cause a line break (after)\nconst CR = 2; // Cause a line break (after), except between CR and LF\nconst LF = 3; // Cause a line break (after)\nconst CM = 4; // Prohibit a line break between the character and the preceding character\nconst NL = 5; // Cause a line break (after)\nconst SG = 6; // Do not occur in well-formed text\nconst WJ = 7; // Prohibit line breaks before and after\nconst ZW = 8; // Provide a break opportunity\nconst GL = 9; // Prohibit line breaks before and after\nconst SP = 10; // Enable indirect line breaks\nconst ZWJ = 11; // Prohibit line breaks within joiner sequences\n// Break Opportunities\nconst B2 = 12; // Provide a line break opportunity before and after the character\nconst BA = 13; // Generally provide a line break opportunity after the character\nconst BB = 14; // Generally provide a line break opportunity before the character\nconst HY = 15; // Provide a line break opportunity after the character, except in numeric context\nconst CB = 16; // Provide a line break opportunity contingent on additional information\n// Characters Prohibiting Certain Breaks\nconst CL = 17; // Prohibit line breaks before\nconst CP = 18; // Prohibit line breaks before\nconst EX = 19; // Prohibit line breaks before\nconst IN = 20; // Allow only indirect line breaks between pairs\nconst NS = 21; // Allow only indirect line breaks before\nconst OP = 22; // Prohibit line breaks after\nconst QU = 23; // Act like they are both opening and closing\n// Numeric Context\nconst IS = 24; // Prevent breaks after any and before numeric\nconst NU = 25; // Form numeric expressions for line breaking purposes\nconst PO = 26; // Do not break following a numeric expression\nconst PR = 27; // Do not break in front of a numeric expression\nconst SY = 28; // Prevent a break before; and allow a break after\n// Other Characters\nconst AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\nconst AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\nconst CJ = 31; // Treat as NS or ID for strict or normal breaking.\nconst EB = 32; // Do not break from following Emoji Modifier\nconst EM = 33; // Do not break from preceding Emoji Base\nconst H2 = 34; // Form Korean syllable blocks\nconst H3 = 35; // Form Korean syllable blocks\nconst HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\nconst ID = 37; // Break before or after; except in some numeric context\nconst JL = 38; // Form Korean syllable blocks\nconst JV = 39; // Form Korean syllable blocks\nconst JT = 40; // Form Korean syllable blocks\nconst RI = 41; // Keep pairs together. For pairs; break before and after other classes\nconst SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\nconst XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\n\nconst ea_OP = [0x2329, 0xff08];\n\nexport const classes: {[key: string]: number} = {\n BK,\n CR,\n LF,\n CM,\n NL,\n SG,\n WJ,\n ZW,\n GL,\n SP,\n ZWJ,\n B2,\n BA,\n BB,\n HY,\n CB,\n CL,\n CP,\n EX,\n IN,\n NS,\n OP,\n QU,\n IS,\n NU,\n PO,\n PR,\n SY,\n AI,\n AL,\n CJ,\n EB,\n EM,\n H2,\n H3,\n HL,\n ID,\n JL,\n JV,\n JT,\n RI,\n SA,\n XX,\n};\n\nexport const BREAK_MANDATORY = '!';\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nconst ALPHABETICS = [AL, HL];\nconst HARD_LINE_BREAKS = [BK, CR, LF, NL];\nconst SPACE = [SP, ZW];\nconst PREFIX_POSTFIX = [PR, PO];\nconst LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE);\nconst KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\nconst HYPHEN = [HY, BA];\n\nexport const codePointsToCharacterClasses = (\n codePoints: number[],\n lineBreak: string = 'strict'\n): [number[], number[], boolean[]] => {\n const types: number[] = [];\n const indices: number[] = [];\n const categories: boolean[] = [];\n codePoints.forEach((codePoint, index) => {\n let classType = UnicodeTrie.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n } else {\n categories.push(false);\n }\n\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n\n if (classType === CM || classType === ZWJ) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n const prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n\n indices.push(index);\n\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n\n if (classType === SA) {\n return types.push(AL);\n }\n\n if (classType === AI) {\n return types.push(AL);\n }\n\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n } else {\n return types.push(AL);\n }\n }\n\n types.push(classType);\n });\n\n return [indices, types, categories];\n};\n\nconst isAdjacentWithSpaceIgnored = (\n a: number[] | number,\n b: number,\n currentIndex: number,\n classTypes: number[]\n): boolean => {\n const current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n let i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n let next = classTypes[i];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (current === SP) {\n let i = currentIndex;\n\n while (i > 0) {\n i--;\n const prev = classTypes[i];\n\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n let n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n let next = classTypes[n];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n};\n\nconst previousNonSpaceClassType = (currentIndex: number, classTypes: number[]): number => {\n let i = currentIndex;\n while (i >= 0) {\n let type = classTypes[i];\n if (type === SP) {\n i--;\n } else {\n return type;\n }\n }\n return 0;\n};\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED | typeof BREAK_MANDATORY;\n\nconst _lineBreakAtIndex = (\n codePoints: number[],\n classTypes: number[],\n indicies: number[],\n index: number,\n forbiddenBreaks?: boolean[]\n): BREAK_OPPORTUNITIES => {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n let currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED;\n }\n\n let beforeIndex = currentIndex - 1;\n let afterIndex = currentIndex + 1;\n let current = classTypes[currentIndex];\n\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n let before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n let next = classTypes[afterIndex];\n\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB7 Do not break before spaces or zero width space.\n if (SPACE.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED;\n }\n\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie.get(codePoints[afterIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB15 Do not break within ‘”[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED;\n }\n\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED;\n }\n\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if (\n (current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if (\n (ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n let prevIndex = currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n let prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // LB26 Do not break a Korean syllable.\n if (\n (JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB27 Treat a Korean Syllable Block the same as ID.\n if (\n (KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB28 Do not break between alphabetics (“at”).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if (\n (ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI && next === RI) {\n let i = indicies[currentIndex];\n let count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI) {\n count++;\n } else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED;\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const lineBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // LB2 Never break at the start of text.\n if (index === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB3 Always break at the end of text.\n if (index >= codePoints.length) {\n return BREAK_MANDATORY;\n }\n\n const [indices, classTypes] = codePointsToCharacterClasses(codePoints);\n\n return _lineBreakAtIndex(codePoints, classTypes, indices, index);\n};\n\nexport type LINE_BREAK = 'auto' | 'normal' | 'strict';\nexport type WORD_BREAK = 'normal' | 'break-all' | 'break-word' | 'keep-all';\n\ninterface IOptions {\n lineBreak?: LINE_BREAK;\n wordBreak?: WORD_BREAK;\n}\n\nconst cssFormattedClasses = (codePoints: number[], options?: IOptions): [number[], number[], boolean[] | undefined] => {\n if (!options) {\n options = {lineBreak: 'normal', wordBreak: 'normal'};\n }\n let [indicies, classTypes, isLetterNumber] = codePointsToCharacterClasses(codePoints, options.lineBreak);\n\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map((type) => ([NU, AL, SA].indexOf(type) !== -1 ? ID : type));\n }\n\n const forbiddenBreakpoints =\n options.wordBreak === 'keep-all'\n ? isLetterNumber.map((letterNumber, i) => {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n\n return [indicies, classTypes, forbiddenBreakpoints];\n};\n\nexport const inlineBreakOpportunities = (str: string, options?: IOptions): string => {\n const codePoints = toCodePoints(str);\n let output = BREAK_NOT_ALLOWED;\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n\n codePoints.forEach((codePoint, i) => {\n output +=\n fromCodePoint(codePoint) +\n (i >= codePoints.length - 1\n ? BREAK_MANDATORY\n : _lineBreakAtIndex(codePoints, classTypes, indicies, i + 1, forbiddenBreakpoints));\n });\n\n return output;\n};\n\nclass Break {\n private readonly codePoints: number[];\n readonly required: boolean;\n readonly start: number;\n readonly end: number;\n\n constructor(codePoints: number[], lineBreak: string, start: number, end: number) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n\n slice(): string {\n return fromCodePoint(...this.codePoints.slice(this.start, this.end));\n }\n}\n\nexport type LineBreak =\n | {\n done: true;\n value: null;\n }\n | {\n done: false;\n value: Break;\n };\n\ninterface ILineBreakIterator {\n next: () => LineBreak;\n}\n\nexport const LineBreaker = (str: string, options?: IOptions): ILineBreakIterator => {\n const codePoints = toCodePoints(str);\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n const length = codePoints.length;\n let lastEnd = 0;\n let nextIndex = 0;\n\n return {\n next: () => {\n if (nextIndex >= length) {\n return {done: true, value: null};\n }\n let lineBreak = BREAK_NOT_ALLOWED;\n while (\n nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED\n ) {}\n\n if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) {\n const value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n },\n };\n};\n","// https://www.w3.org/TR/css-syntax-3\n\nimport {fromCodePoint, toCodePoints} from 'css-line-break';\n\nexport const enum TokenType {\n STRING_TOKEN,\n BAD_STRING_TOKEN,\n LEFT_PARENTHESIS_TOKEN,\n RIGHT_PARENTHESIS_TOKEN,\n COMMA_TOKEN,\n HASH_TOKEN,\n DELIM_TOKEN,\n AT_KEYWORD_TOKEN,\n PREFIX_MATCH_TOKEN,\n DASH_MATCH_TOKEN,\n INCLUDE_MATCH_TOKEN,\n LEFT_CURLY_BRACKET_TOKEN,\n RIGHT_CURLY_BRACKET_TOKEN,\n SUFFIX_MATCH_TOKEN,\n SUBSTRING_MATCH_TOKEN,\n DIMENSION_TOKEN,\n PERCENTAGE_TOKEN,\n NUMBER_TOKEN,\n FUNCTION,\n FUNCTION_TOKEN,\n IDENT_TOKEN,\n COLUMN_TOKEN,\n URL_TOKEN,\n BAD_URL_TOKEN,\n CDC_TOKEN,\n CDO_TOKEN,\n COLON_TOKEN,\n SEMICOLON_TOKEN,\n LEFT_SQUARE_BRACKET_TOKEN,\n RIGHT_SQUARE_BRACKET_TOKEN,\n UNICODE_RANGE_TOKEN,\n WHITESPACE_TOKEN,\n EOF_TOKEN\n}\n\ninterface IToken {\n type: TokenType;\n}\n\nexport interface Token extends IToken {\n type:\n | TokenType.BAD_URL_TOKEN\n | TokenType.BAD_STRING_TOKEN\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.RIGHT_PARENTHESIS_TOKEN\n | TokenType.COMMA_TOKEN\n | TokenType.SUBSTRING_MATCH_TOKEN\n | TokenType.PREFIX_MATCH_TOKEN\n | TokenType.SUFFIX_MATCH_TOKEN\n | TokenType.COLON_TOKEN\n | TokenType.SEMICOLON_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN\n | TokenType.RIGHT_CURLY_BRACKET_TOKEN\n | TokenType.DASH_MATCH_TOKEN\n | TokenType.INCLUDE_MATCH_TOKEN\n | TokenType.COLUMN_TOKEN\n | TokenType.WHITESPACE_TOKEN\n | TokenType.CDC_TOKEN\n | TokenType.CDO_TOKEN\n | TokenType.EOF_TOKEN;\n}\n\nexport interface StringValueToken extends IToken {\n type:\n | TokenType.STRING_TOKEN\n | TokenType.DELIM_TOKEN\n | TokenType.FUNCTION_TOKEN\n | TokenType.IDENT_TOKEN\n | TokenType.URL_TOKEN\n | TokenType.AT_KEYWORD_TOKEN;\n value: string;\n}\n\nexport interface HashToken extends IToken {\n type: TokenType.HASH_TOKEN;\n flags: number;\n value: string;\n}\n\nexport interface NumberValueToken extends IToken {\n type: TokenType.PERCENTAGE_TOKEN | TokenType.NUMBER_TOKEN;\n flags: number;\n number: number;\n}\n\nexport interface DimensionToken extends IToken {\n type: TokenType.DIMENSION_TOKEN;\n flags: number;\n unit: string;\n number: number;\n}\n\nexport interface UnicodeRangeToken extends IToken {\n type: TokenType.UNICODE_RANGE_TOKEN;\n start: number;\n end: number;\n}\n\nexport type CSSToken = Token | StringValueToken | NumberValueToken | DimensionToken | UnicodeRangeToken | HashToken;\n\nexport const FLAG_UNRESTRICTED = 1 << 0;\nexport const FLAG_ID = 1 << 1;\nexport const FLAG_INTEGER = 1 << 2;\nexport const FLAG_NUMBER = 1 << 3;\n\nconst LINE_FEED = 0x000a;\nconst SOLIDUS = 0x002f;\nconst REVERSE_SOLIDUS = 0x005c;\nconst CHARACTER_TABULATION = 0x0009;\nconst SPACE = 0x0020;\nconst QUOTATION_MARK = 0x0022;\nconst EQUALS_SIGN = 0x003d;\nconst NUMBER_SIGN = 0x0023;\nconst DOLLAR_SIGN = 0x0024;\nconst PERCENTAGE_SIGN = 0x0025;\nconst APOSTROPHE = 0x0027;\nconst LEFT_PARENTHESIS = 0x0028;\nconst RIGHT_PARENTHESIS = 0x0029;\nconst LOW_LINE = 0x005f;\nconst HYPHEN_MINUS = 0x002d;\nconst EXCLAMATION_MARK = 0x0021;\nconst LESS_THAN_SIGN = 0x003c;\nconst GREATER_THAN_SIGN = 0x003e;\nconst COMMERCIAL_AT = 0x0040;\nconst LEFT_SQUARE_BRACKET = 0x005b;\nconst RIGHT_SQUARE_BRACKET = 0x005d;\nconst CIRCUMFLEX_ACCENT = 0x003d;\nconst LEFT_CURLY_BRACKET = 0x007b;\nconst QUESTION_MARK = 0x003f;\nconst RIGHT_CURLY_BRACKET = 0x007d;\nconst VERTICAL_LINE = 0x007c;\nconst TILDE = 0x007e;\nconst CONTROL = 0x0080;\nconst REPLACEMENT_CHARACTER = 0xfffd;\nconst ASTERISK = 0x002a;\nconst PLUS_SIGN = 0x002b;\nconst COMMA = 0x002c;\nconst COLON = 0x003a;\nconst SEMICOLON = 0x003b;\nconst FULL_STOP = 0x002e;\nconst NULL = 0x0000;\nconst BACKSPACE = 0x0008;\nconst LINE_TABULATION = 0x000b;\nconst SHIFT_OUT = 0x000e;\nconst INFORMATION_SEPARATOR_ONE = 0x001f;\nconst DELETE = 0x007f;\nconst EOF = -1;\nconst ZERO = 0x0030;\nconst a = 0x0061;\nconst e = 0x0065;\nconst f = 0x0066;\nconst u = 0x0075;\nconst z = 0x007a;\nconst A = 0x0041;\nconst E = 0x0045;\nconst F = 0x0046;\nconst U = 0x0055;\nconst Z = 0x005a;\n\nconst isDigit = (codePoint: number) => codePoint >= ZERO && codePoint <= 0x0039;\nconst isSurrogateCodePoint = (codePoint: number) => codePoint >= 0xd800 && codePoint <= 0xdfff;\nconst isHex = (codePoint: number) =>\n isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\nconst isLowerCaseLetter = (codePoint: number) => codePoint >= a && codePoint <= z;\nconst isUpperCaseLetter = (codePoint: number) => codePoint >= A && codePoint <= Z;\nconst isLetter = (codePoint: number) => isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint);\nconst isNonASCIICodePoint = (codePoint: number) => codePoint >= CONTROL;\nconst isWhiteSpace = (codePoint: number): boolean =>\n codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\nconst isNameStartCodePoint = (codePoint: number): boolean =>\n isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\nconst isNameCodePoint = (codePoint: number): boolean =>\n isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\nconst isNonPrintableCodePoint = (codePoint: number): boolean => {\n return (\n (codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE\n );\n};\nconst isValidEscape = (c1: number, c2: number): boolean => {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n\n return c2 !== LINE_FEED;\n};\nconst isIdentifierStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n } else if (isNameStartCodePoint(c1)) {\n return true;\n } else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n};\n\nconst isNumberStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n\n return c2 === FULL_STOP && isDigit(c3);\n }\n\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n\n return isDigit(c1);\n};\n\nconst stringToNumber = (codePoints: number[]): number => {\n let c = 0;\n let sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n\n const integers = [];\n\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n\n const int = integers.length ? parseInt(fromCodePoint(...integers), 10) : 0;\n\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n\n const fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n\n const fracd = fraction.length;\n const frac = fracd ? parseInt(fromCodePoint(...fraction), 10) : 0;\n\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n\n let expsign = 1;\n\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n\n const exponent = [];\n\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n\n const exp = exponent.length ? parseInt(fromCodePoint(...exponent), 10) : 0;\n\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n};\n\nconst LEFT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.LEFT_PARENTHESIS_TOKEN\n};\nconst RIGHT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.RIGHT_PARENTHESIS_TOKEN\n};\nconst COMMA_TOKEN: Token = {type: TokenType.COMMA_TOKEN};\nconst SUFFIX_MATCH_TOKEN: Token = {type: TokenType.SUFFIX_MATCH_TOKEN};\nconst PREFIX_MATCH_TOKEN: Token = {type: TokenType.PREFIX_MATCH_TOKEN};\nconst COLUMN_TOKEN: Token = {type: TokenType.COLUMN_TOKEN};\nconst DASH_MATCH_TOKEN: Token = {type: TokenType.DASH_MATCH_TOKEN};\nconst INCLUDE_MATCH_TOKEN: Token = {type: TokenType.INCLUDE_MATCH_TOKEN};\nconst LEFT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_CURLY_BRACKET_TOKEN\n};\nconst RIGHT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_CURLY_BRACKET_TOKEN\n};\nconst SUBSTRING_MATCH_TOKEN: Token = {type: TokenType.SUBSTRING_MATCH_TOKEN};\nconst BAD_URL_TOKEN: Token = {type: TokenType.BAD_URL_TOKEN};\nconst BAD_STRING_TOKEN: Token = {type: TokenType.BAD_STRING_TOKEN};\nconst CDO_TOKEN: Token = {type: TokenType.CDO_TOKEN};\nconst CDC_TOKEN: Token = {type: TokenType.CDC_TOKEN};\nconst COLON_TOKEN: Token = {type: TokenType.COLON_TOKEN};\nconst SEMICOLON_TOKEN: Token = {type: TokenType.SEMICOLON_TOKEN};\nconst LEFT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_SQUARE_BRACKET_TOKEN\n};\nconst RIGHT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n};\nconst WHITESPACE_TOKEN: Token = {type: TokenType.WHITESPACE_TOKEN};\nexport const EOF_TOKEN: Token = {type: TokenType.EOF_TOKEN};\n\nexport class Tokenizer {\n private _value: number[];\n\n constructor() {\n this._value = [];\n }\n\n write(chunk: string): void {\n this._value = this._value.concat(toCodePoints(chunk));\n }\n\n read(): CSSToken[] {\n const tokens = [];\n let token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n }\n\n private consumeToken(): CSSToken {\n const codePoint = this.consumeCodePoint();\n\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n const flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n const value = this.consumeName();\n\n return {type: TokenType.HASH_TOKEN, value, flags};\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n const e1 = codePoint;\n const e2 = this.peekCodePoint(0);\n const e3 = this.peekCodePoint(1);\n\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n let c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (\n this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS\n ) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n const a1 = this.peekCodePoint(0);\n const a2 = this.peekCodePoint(1);\n const a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n const value = this.consumeName();\n return {type: TokenType.AT_KEYWORD_TOKEN, value};\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n const u1 = this.peekCodePoint(0);\n const u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n return {type: TokenType.DELIM_TOKEN, value: fromCodePoint(codePoint)};\n }\n\n private consumeCodePoint(): number {\n const value = this._value.shift();\n\n return typeof value === 'undefined' ? -1 : value;\n }\n\n private reconsumeCodePoint(codePoint: number) {\n this._value.unshift(codePoint);\n }\n\n private peekCodePoint(delta: number): number {\n if (delta >= this._value.length) {\n return -1;\n }\n\n return this._value[delta];\n }\n\n private consumeUnicodeRangeToken(): UnicodeRangeToken {\n const digits = [];\n let codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n let questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n\n if (questionMarks) {\n const start = parseInt(\n fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? ZERO : digit))),\n 16\n );\n const end = parseInt(fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? F : digit))), 16);\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n }\n\n const start = parseInt(fromCodePoint(...digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n const endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n const end = parseInt(fromCodePoint(...endDigits), 16);\n\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n } else {\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end: start};\n }\n }\n\n private consumeIdentLikeToken(): StringValueToken | Token {\n const value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n } else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.FUNCTION_TOKEN, value};\n }\n\n return {type: TokenType.IDENT_TOKEN, value};\n }\n\n private consumeUrlToken(): StringValueToken | Token {\n const value = [];\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF) {\n return {type: TokenType.URL_TOKEN, value: ''};\n }\n\n const next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n const stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === TokenType.STRING_TOKEN) {\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: stringToken.value};\n }\n }\n\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n } else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (\n codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)\n ) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n } else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n } else {\n value.push(codePoint);\n }\n }\n }\n\n private consumeWhiteSpace(): void {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n }\n\n private consumeBadUrlRemnants(): void {\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n }\n\n private consumeStringSlice(count: number): string {\n const SLICE_STACK_SIZE = 50000;\n let value = '';\n while (count > 0) {\n const amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint(...this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n\n return value;\n }\n\n private consumeStringToken(endingCodePoint: number): StringValueToken | Token {\n let value = '';\n let i = 0;\n\n do {\n const codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return {type: TokenType.STRING_TOKEN, value};\n }\n\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n\n if (codePoint === REVERSE_SOLIDUS) {\n const next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n } else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n\n i++;\n } while (true);\n }\n\n private consumeNumber() {\n const repr = [];\n let type = FLAG_INTEGER;\n let c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n let c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n return [stringToNumber(repr), type];\n }\n\n private consumeNumericToken(): NumberValueToken | DimensionToken {\n const [number, flags] = this.consumeNumber();\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n\n if (isIdentifierStart(c1, c2, c3)) {\n const unit = this.consumeName();\n return {type: TokenType.DIMENSION_TOKEN, number, flags, unit};\n }\n\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return {type: TokenType.PERCENTAGE_TOKEN, number, flags};\n }\n\n return {type: TokenType.NUMBER_TOKEN, number, flags};\n }\n\n private consumeEscapedCodePoint(): number {\n const codePoint = this.consumeCodePoint();\n\n if (isHex(codePoint)) {\n let hex = fromCodePoint(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint(this.consumeCodePoint());\n }\n\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n\n const hexCodePoint = parseInt(hex, 16);\n\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n\n return hexCodePoint;\n }\n\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n\n return codePoint;\n }\n\n private consumeName(): string {\n let result = '';\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint(codePoint);\n } else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint(this.consumeEscapedCodePoint());\n } else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n }\n}\n","import {\n CSSToken,\n DimensionToken,\n EOF_TOKEN,\n NumberValueToken,\n StringValueToken,\n Tokenizer,\n TokenType\n} from './tokenizer';\n\nexport type CSSBlockType =\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN;\n\nexport interface CSSBlock {\n type: CSSBlockType;\n values: CSSValue[];\n}\n\nexport interface CSSFunction {\n type: TokenType.FUNCTION;\n name: string;\n values: CSSValue[];\n}\n\nexport type CSSValue = CSSFunction | CSSToken | CSSBlock;\n\nexport class Parser {\n private _tokens: CSSToken[];\n\n constructor(tokens: CSSToken[]) {\n this._tokens = tokens;\n }\n\n static create(value: string): Parser {\n const tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n }\n\n static parseValue(value: string): CSSValue {\n return Parser.create(value).parseComponentValue();\n }\n\n static parseValues(value: string): CSSValue[] {\n return Parser.create(value).parseComponentValues();\n }\n\n parseComponentValue(): CSSValue {\n let token = this.consumeToken();\n while (token.type === TokenType.WHITESPACE_TOKEN) {\n token = this.consumeToken();\n }\n\n if (token.type === TokenType.EOF_TOKEN) {\n throw new SyntaxError(`Error parsing CSS component value, unexpected EOF`);\n }\n\n this.reconsumeToken(token);\n const value = this.consumeComponentValue();\n\n do {\n token = this.consumeToken();\n } while (token.type === TokenType.WHITESPACE_TOKEN);\n\n if (token.type === TokenType.EOF_TOKEN) {\n return value;\n }\n\n throw new SyntaxError(`Error parsing CSS component value, multiple values found when expecting only one`);\n }\n\n parseComponentValues(): CSSValue[] {\n const values = [];\n while (true) {\n const value = this.consumeComponentValue();\n if (value.type === TokenType.EOF_TOKEN) {\n return values;\n }\n values.push(value);\n values.push();\n }\n }\n\n private consumeComponentValue(): CSSValue {\n const token = this.consumeToken();\n\n switch (token.type) {\n case TokenType.LEFT_CURLY_BRACKET_TOKEN:\n case TokenType.LEFT_SQUARE_BRACKET_TOKEN:\n case TokenType.LEFT_PARENTHESIS_TOKEN:\n return this.consumeSimpleBlock(token.type);\n case TokenType.FUNCTION_TOKEN:\n return this.consumeFunction(token);\n }\n\n return token;\n }\n\n private consumeSimpleBlock(type: CSSBlockType): CSSBlock {\n const block: CSSBlock = {type, values: []};\n\n let token = this.consumeToken();\n while (true) {\n if (token.type === TokenType.EOF_TOKEN || isEndingTokenFor(token, type)) {\n return block;\n }\n\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n }\n\n private consumeFunction(functionToken: StringValueToken): CSSFunction {\n const cssFunction: CSSFunction = {\n name: functionToken.value,\n values: [],\n type: TokenType.FUNCTION\n };\n\n while (true) {\n const token = this.consumeToken();\n if (token.type === TokenType.EOF_TOKEN || token.type === TokenType.RIGHT_PARENTHESIS_TOKEN) {\n return cssFunction;\n }\n\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n }\n\n private consumeToken(): CSSToken {\n const token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n }\n\n private reconsumeToken(token: CSSToken): void {\n this._tokens.unshift(token);\n }\n}\n\nexport const isDimensionToken = (token: CSSValue): token is DimensionToken => token.type === TokenType.DIMENSION_TOKEN;\nexport const isNumberToken = (token: CSSValue): token is NumberValueToken => token.type === TokenType.NUMBER_TOKEN;\nexport const isIdentToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.IDENT_TOKEN;\nexport const isStringToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.STRING_TOKEN;\nexport const isIdentWithValue = (token: CSSValue, value: string): boolean =>\n isIdentToken(token) && token.value === value;\n\nexport const nonWhiteSpace = (token: CSSValue): boolean => token.type !== TokenType.WHITESPACE_TOKEN;\nexport const nonFunctionArgSeparator = (token: CSSValue): boolean =>\n token.type !== TokenType.WHITESPACE_TOKEN && token.type !== TokenType.COMMA_TOKEN;\n\nexport const parseFunctionArgs = (tokens: CSSValue[]): CSSValue[][] => {\n const args: CSSValue[][] = [];\n let arg: CSSValue[] = [];\n tokens.forEach((token) => {\n if (token.type === TokenType.COMMA_TOKEN) {\n if (arg.length === 0) {\n throw new Error(`Error parsing function args, zero tokens for arg`);\n }\n args.push(arg);\n arg = [];\n return;\n }\n\n if (token.type !== TokenType.WHITESPACE_TOKEN) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n\n return args;\n};\n\nconst isEndingTokenFor = (token: CSSToken, type: CSSBlockType): boolean => {\n if (type === TokenType.LEFT_CURLY_BRACKET_TOKEN && token.type === TokenType.RIGHT_CURLY_BRACKET_TOKEN) {\n return true;\n }\n if (type === TokenType.LEFT_SQUARE_BRACKET_TOKEN && token.type === TokenType.RIGHT_SQUARE_BRACKET_TOKEN) {\n return true;\n }\n\n return type === TokenType.LEFT_PARENTHESIS_TOKEN && token.type === TokenType.RIGHT_PARENTHESIS_TOKEN;\n};\n","import {CSSValue} from '../syntax/parser';\nimport {DimensionToken, NumberValueToken, TokenType} from '../syntax/tokenizer';\n\nexport type Length = DimensionToken | NumberValueToken;\n\nexport const isLength = (token: CSSValue): token is Length =>\n token.type === TokenType.NUMBER_TOKEN || token.type === TokenType.DIMENSION_TOKEN;\n","import {DimensionToken, FLAG_INTEGER, NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {isLength} from './length';\nexport type LengthPercentage = DimensionToken | NumberValueToken;\nexport type LengthPercentageTuple = [LengthPercentage] | [LengthPercentage, LengthPercentage];\n\nexport const isLengthPercentage = (token: CSSValue): token is LengthPercentage =>\n token.type === TokenType.PERCENTAGE_TOKEN || isLength(token);\nexport const parseLengthPercentageTuple = (tokens: LengthPercentage[]): LengthPercentageTuple =>\n tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\nexport const ZERO_LENGTH: NumberValueToken = {\n type: TokenType.NUMBER_TOKEN,\n number: 0,\n flags: FLAG_INTEGER\n};\n\nexport const FIFTY_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\n\nexport const HUNDRED_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 100,\n flags: FLAG_INTEGER\n};\n\nexport const getAbsoluteValueForTuple = (\n tuple: LengthPercentageTuple,\n width: number,\n height: number\n): [number, number] => {\n const [x, y] = tuple;\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n};\nexport const getAbsoluteValue = (token: LengthPercentage, parent: number): number => {\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n return (token.number / 100) * parent;\n }\n\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n\n return token.number;\n};\n","import {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {HUNDRED_PERCENT, ZERO_LENGTH} from './length-percentage';\nimport {GradientCorner} from './image';\nimport {Context} from '../../core/context';\n\nconst DEG = 'deg';\nconst GRAD = 'grad';\nconst RAD = 'rad';\nconst TURN = 'turn';\n\nexport const angle: ITypeDescriptor = {\n name: 'angle',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n\n throw new Error(`Unsupported angle type`);\n }\n};\n\nexport const isAngle = (value: CSSValue): boolean => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n};\n\nexport const parseNamedSide = (tokens: CSSValue[]): number | GradientCorner => {\n const sideOrCorner = tokens\n .filter(isIdentToken)\n .map((ident) => ident.value)\n .join(' ');\n\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n\n return 0;\n};\n\nexport const deg = (deg: number): number => (Math.PI * deg) / 180;\n","import {CSSValue, nonFunctionArgSeparator, Parser} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {angle, deg} from './angle';\nimport {getAbsoluteValue, isLengthPercentage} from './length-percentage';\nimport {Context} from '../../core/context';\nexport type Color = number;\n\nexport const color: ITypeDescriptor = {\n name: 'color',\n parse: (context: Context, value: CSSValue): Color => {\n if (value.type === TokenType.FUNCTION) {\n const colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported color function \"${value.name}\"`);\n }\n return colorFunction(context, value.values);\n }\n\n if (value.type === TokenType.HASH_TOKEN) {\n if (value.value.length === 3) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n\n if (value.value.length === 4) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n const a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n\n if (value.value.length === 6) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n\n if (value.value.length === 8) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n const a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n\n if (value.type === TokenType.IDENT_TOKEN) {\n const namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n\n return COLORS.TRANSPARENT;\n }\n};\n\nexport const isTransparent = (color: Color): boolean => (0xff & color) === 0;\n\nexport const asString = (color: Color): string => {\n const alpha = 0xff & color;\n const blue = 0xff & (color >> 8);\n const green = 0xff & (color >> 16);\n const red = 0xff & (color >> 24);\n return alpha < 255 ? `rgba(${red},${green},${blue},${alpha / 255})` : `rgb(${red},${green},${blue})`;\n};\n\nexport const pack = (r: number, g: number, b: number, a: number): Color =>\n ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n\nconst getTokenColorValue = (token: CSSValue, i: number): number => {\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n const max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n\n return 0;\n};\n\nconst rgb = (_context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n\n if (tokens.length === 3) {\n const [r, g, b] = tokens.map(getTokenColorValue);\n return pack(r, g, b, 1);\n }\n\n if (tokens.length === 4) {\n const [r, g, b, a] = tokens.map(getTokenColorValue);\n return pack(r, g, b, a);\n }\n\n return 0;\n};\n\nfunction hue2rgb(t1: number, t2: number, hue: number): number {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n } else if (hue < 1 / 2) {\n return t2;\n } else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n } else {\n return t1;\n }\n}\n\nconst hsl = (context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n const [hue, saturation, lightness, alpha] = tokens;\n\n const h = (hue.type === TokenType.NUMBER_TOKEN ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n const s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n const l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n const a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n\n const t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n\n const t1 = l * 2 - t2;\n const r = hue2rgb(t1, t2, h + 1 / 3);\n const g = hue2rgb(t1, t2, h);\n const b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n};\n\nconst SUPPORTED_COLOR_FUNCTIONS: {\n [key: string]: (context: Context, args: CSSValue[]) => number;\n} = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n};\n\nexport const parseColor = (context: Context, value: string): Color =>\n color.parse(context, Parser.create(value).parseComponentValue());\n\nexport const COLORS: {[key: string]: Color} = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum BACKGROUND_CLIP {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundClip = BACKGROUND_CLIP[];\n\nexport const backgroundClip: IPropertyListDescriptor = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundClip => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_CLIP.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_CLIP.CONTENT_BOX;\n }\n }\n return BACKGROUND_CLIP.BORDER_BOX;\n });\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const backgroundColor: IPropertyTypeValueDescriptor = {\n name: `background-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue} from '../../syntax/parser';\nimport {\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n GradientColorStop,\n GradientCorner,\n UnprocessedGradientColorStop\n} from '../image';\nimport {color as colorType} from '../color';\nimport {getAbsoluteValue, HUNDRED_PERCENT, isLengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const parseColorStop = (context: Context, args: CSSValue[]): UnprocessedGradientColorStop => {\n const color = colorType.parse(context, args[0]);\n const stop = args[1];\n return stop && isLengthPercentage(stop) ? {color, stop} : {color, stop: null};\n};\n\nexport const processColorStops = (stops: UnprocessedGradientColorStop[], lineLength: number): GradientColorStop[] => {\n const first = stops[0];\n const last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n\n const processStops: (number | null)[] = [];\n let previous = 0;\n for (let i = 0; i < stops.length; i++) {\n const stop = stops[i].stop;\n if (stop !== null) {\n const absoluteValue = getAbsoluteValue(stop, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n } else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n } else {\n processStops.push(null);\n }\n }\n\n let gapBegin = null;\n for (let i = 0; i < processStops.length; i++) {\n const stop = processStops[i];\n if (stop === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n } else if (gapBegin !== null) {\n const gapLength = i - gapBegin;\n const beforeGap = processStops[gapBegin - 1] as number;\n const gapValue = (stop - beforeGap) / (gapLength + 1);\n for (let g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n\n return stops.map(({color}, i) => {\n return {color, stop: Math.max(Math.min(1, (processStops[i] as number) / lineLength), 0)};\n });\n};\n\nconst getAngleFromCorner = (corner: GradientCorner, width: number, height: number): number => {\n const centerX = width / 2;\n const centerY = height / 2;\n const x = getAbsoluteValue(corner[0], width) - centerX;\n const y = centerY - getAbsoluteValue(corner[1], height);\n\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n};\n\nexport const calculateGradientDirection = (\n angle: number | GradientCorner,\n width: number,\n height: number\n): [number, number, number, number, number] => {\n const radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n\n const lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n\n const halfWidth = width / 2;\n const halfHeight = height / 2;\n const halfLineLength = lineLength / 2;\n\n const yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n const xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n};\n\nconst distance = (a: number, b: number): number => Math.sqrt(a * a + b * b);\n\nconst findCorner = (width: number, height: number, x: number, y: number, closest: boolean): [number, number] => {\n const corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n\n return corners.reduce(\n (stat, corner) => {\n const [cx, cy] = corner;\n const d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n\n return stat;\n },\n {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }\n ).optimumCorner as [number, number];\n};\n\nexport const calculateRadius = (\n gradient: CSSRadialGradientImage,\n x: number,\n y: number,\n width: number,\n height: number\n): [number, number] => {\n let rx = 0;\n let ry = 0;\n\n switch (gradient.size) {\n case CSSRadialExtent.CLOSEST_SIDE:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.CLOSEST_CORNER:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n const c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, true);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n\n case CSSRadialExtent.FARTHEST_SIDE:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.FARTHEST_CORNER:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n const c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, false);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n\n return [rx, ry];\n};\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixLinearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (\n firstToken.type === TokenType.IDENT_TOKEN &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1\n ) {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = (angleType.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {\n angle,\n stops,\n type: CSSImageType.LINEAR_GRADIENT\n };\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {Context} from '../../../core/context';\nexport const CLOSEST_SIDE = 'closest-side';\nexport const FARTHEST_SIDE = 'farthest-side';\nexport const CLOSEST_CORNER = 'closest-corner';\nexport const FARTHEST_CORNER = 'farthest-corner';\nexport const CIRCLE = 'circle';\nexport const ELLIPSE = 'ellipse';\nexport const COVER = 'cover';\nexport const CONTAIN = 'contain';\n\nexport const radialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n let isAtPosition = false;\n isColorStop = arg.reduce((acc, token) => {\n if (isAtPosition) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n } else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case 'at':\n isAtPosition = true;\n return false;\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {\n CIRCLE,\n CLOSEST_CORNER,\n CLOSEST_SIDE,\n CONTAIN,\n COVER,\n ELLIPSE,\n FARTHEST_CORNER,\n FARTHEST_SIDE\n} from './radial-gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixRadialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n } else if (i === 1) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Color} from './color';\nimport {linearGradient} from './functions/linear-gradient';\nimport {prefixLinearGradient} from './functions/-prefix-linear-gradient';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {LengthPercentage} from './length-percentage';\nimport {webkitGradient} from './functions/-webkit-gradient';\nimport {radialGradient} from './functions/radial-gradient';\nimport {prefixRadialGradient} from './functions/-prefix-radial-gradient';\nimport {Context} from '../../core/context';\n\nexport const enum CSSImageType {\n URL,\n LINEAR_GRADIENT,\n RADIAL_GRADIENT\n}\n\nexport const isLinearGradient = (background: ICSSImage): background is CSSLinearGradientImage => {\n return background.type === CSSImageType.LINEAR_GRADIENT;\n};\n\nexport const isRadialGradient = (background: ICSSImage): background is CSSRadialGradientImage => {\n return background.type === CSSImageType.RADIAL_GRADIENT;\n};\n\nexport interface UnprocessedGradientColorStop {\n color: Color;\n stop: LengthPercentage | null;\n}\n\nexport interface GradientColorStop {\n color: Color;\n stop: number;\n}\n\nexport interface ICSSImage {\n type: CSSImageType;\n}\n\nexport interface CSSURLImage extends ICSSImage {\n url: string;\n type: CSSImageType.URL;\n}\n\n// interface ICSSGeneratedImage extends ICSSImage {}\n\nexport type GradientCorner = [LengthPercentage, LengthPercentage];\n\ninterface ICSSGradientImage extends ICSSImage {\n stops: UnprocessedGradientColorStop[];\n}\n\nexport interface CSSLinearGradientImage extends ICSSGradientImage {\n angle: number | GradientCorner;\n type: CSSImageType.LINEAR_GRADIENT;\n}\n\nexport const enum CSSRadialShape {\n CIRCLE,\n ELLIPSE\n}\n\nexport const enum CSSRadialExtent {\n CLOSEST_SIDE,\n FARTHEST_SIDE,\n CLOSEST_CORNER,\n FARTHEST_CORNER\n}\n\nexport type CSSRadialSize = CSSRadialExtent | LengthPercentage[];\n\nexport interface CSSRadialGradientImage extends ICSSGradientImage {\n type: CSSImageType.RADIAL_GRADIENT;\n shape: CSSRadialShape;\n size: CSSRadialSize;\n position: LengthPercentage[];\n}\n\nexport const image: ITypeDescriptor = {\n name: 'image',\n parse: (context: Context, value: CSSValue): ICSSImage => {\n if (value.type === TokenType.URL_TOKEN) {\n const image: CSSURLImage = {url: value.value, type: CSSImageType.URL};\n context.cache.addImage(value.value);\n return image;\n }\n\n if (value.type === TokenType.FUNCTION) {\n const imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported image function \"${value.name}\"`);\n }\n return imageFunction(context, value.values);\n }\n\n throw new Error(`Unsupported image type ${value.type}`);\n }\n};\n\nexport function isSupportedImage(value: CSSValue): boolean {\n return (\n !(value.type === TokenType.IDENT_TOKEN && value.value === 'none') &&\n (value.type !== TokenType.FUNCTION || !!SUPPORTED_IMAGE_FUNCTIONS[value.name])\n );\n}\n\nconst SUPPORTED_IMAGE_FUNCTIONS: Record ICSSImage> = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {StringValueToken} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport enum BACKGROUND_SIZE {\n AUTO = 'auto',\n CONTAIN = 'contain',\n COVER = 'cover'\n}\n\nexport type BackgroundSizeInfo = LengthPercentage | StringValueToken;\nexport type BackgroundSize = BackgroundSizeInfo[][];\n\nexport const backgroundSize: IPropertyListDescriptor = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundSize => {\n return parseFunctionArgs(tokens).map((values) => values.filter(isBackgroundSizeInfoToken));\n }\n};\n\nconst isBackgroundSizeInfoToken = (value: CSSValue): value is BackgroundSizeInfo =>\n isIdentToken(value) || isLengthPercentage(value);\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const linearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (firstToken.type === TokenType.IDENT_TOKEN && firstToken.value === 'to') {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = angleType.parse(context, firstToken);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {angle, stops, type: CSSImageType.LINEAR_GRADIENT};\n};\n","import {CSSValue, isIdentToken, isNumberToken, nonFunctionArgSeparator, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSLinearGradientImage,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {deg} from '../angle';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {color as colorType} from '../color';\nimport {HUNDRED_PERCENT, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const webkitGradient = (\n context: Context,\n tokens: CSSValue[]\n): CSSLinearGradientImage | CSSRadialGradientImage => {\n const angle = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n let type = CSSImageType.LINEAR_GRADIENT;\n const shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n const size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n const firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = CSSImageType.LINEAR_GRADIENT;\n return;\n } else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = CSSImageType.RADIAL_GRADIENT;\n return;\n }\n }\n\n if (firstToken.type === TokenType.FUNCTION) {\n if (firstToken.name === 'from') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: ZERO_LENGTH, color});\n } else if (firstToken.name === 'to') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: HUNDRED_PERCENT, color});\n } else if (firstToken.name === 'color-stop') {\n const values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n const color = colorType.parse(context, values[1]);\n const stop = values[0];\n if (isNumberToken(stop)) {\n stops.push({\n stop: {type: TokenType.PERCENTAGE_TOKEN, number: stop.number * 100, flags: stop.flags},\n color\n });\n }\n }\n }\n }\n });\n\n return type === CSSImageType.LINEAR_GRADIENT\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops,\n type\n }\n : {size, shape, stops, position, type};\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image, isSupportedImage} from '../types/image';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, nonFunctionArgSeparator} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const backgroundImage: IPropertyListDescriptor = {\n name: 'background-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens\n .filter((value) => nonFunctionArgSeparator(value) && isSupportedImage(value))\n .map((value) => image.parse(context, value));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum BACKGROUND_ORIGIN {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundOrigin = BACKGROUND_ORIGIN[];\n\nexport const backgroundOrigin: IPropertyListDescriptor = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundOrigin => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_ORIGIN.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_ORIGIN.CONTENT_BOX;\n }\n }\n return BACKGROUND_ORIGIN.BORDER_BOX;\n });\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BackgroundPosition = BackgroundImagePosition[];\n\nexport type BackgroundImagePosition = LengthPercentageTuple;\n\nexport const backgroundPosition: IPropertyListDescriptor = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundPosition => {\n return parseFunctionArgs(tokens)\n .map((values: CSSValue[]) => values.filter(isLengthPercentage))\n .map(parseLengthPercentageTuple);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport type BackgroundRepeat = BACKGROUND_REPEAT[];\n\nexport const enum BACKGROUND_REPEAT {\n REPEAT = 0,\n NO_REPEAT = 1,\n REPEAT_X = 2,\n REPEAT_Y = 3\n}\n\nexport const backgroundRepeat: IPropertyListDescriptor = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundRepeat => {\n return parseFunctionArgs(tokens)\n .map((values) =>\n values\n .filter(isIdentToken)\n .map((token) => token.value)\n .join(' ')\n )\n .map(parseBackgroundRepeat);\n }\n};\n\nconst parseBackgroundRepeat = (value: string): BACKGROUND_REPEAT => {\n switch (value) {\n case 'no-repeat':\n return BACKGROUND_REPEAT.NO_REPEAT;\n case 'repeat-x':\n case 'repeat no-repeat':\n return BACKGROUND_REPEAT.REPEAT_X;\n case 'repeat-y':\n case 'no-repeat repeat':\n return BACKGROUND_REPEAT.REPEAT_Y;\n case 'repeat':\n default:\n return BACKGROUND_REPEAT.REPEAT;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum LINE_BREAK {\n NORMAL = 'normal',\n STRICT = 'strict'\n}\n\nexport const lineBreak: IPropertyIdentValueDescriptor = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, lineBreak: string): LINE_BREAK => {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nconst borderColorForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `border-${side}-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n});\n\nexport const borderTopColor: IPropertyTypeValueDescriptor = borderColorForSide('top');\nexport const borderRightColor: IPropertyTypeValueDescriptor = borderColorForSide('right');\nexport const borderBottomColor: IPropertyTypeValueDescriptor = borderColorForSide('bottom');\nexport const borderLeftColor: IPropertyTypeValueDescriptor = borderColorForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BorderRadius = LengthPercentageTuple;\n\nconst borderRadiusForSide = (side: string): IPropertyListDescriptor => ({\n name: `border-radius-${side}`,\n initialValue: '0 0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BorderRadius =>\n parseLengthPercentageTuple(tokens.filter(isLengthPercentage))\n});\n\nexport const borderTopLeftRadius: IPropertyListDescriptor = borderRadiusForSide('top-left');\nexport const borderTopRightRadius: IPropertyListDescriptor = borderRadiusForSide('top-right');\nexport const borderBottomRightRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-right');\nexport const borderBottomLeftRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum BORDER_STYLE {\n NONE = 0,\n SOLID = 1,\n DASHED = 2,\n DOTTED = 3,\n DOUBLE = 4\n}\n\nconst borderStyleForSide = (side: string): IPropertyIdentValueDescriptor => ({\n name: `border-${side}-style`,\n initialValue: 'solid',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, style: string): BORDER_STYLE => {\n switch (style) {\n case 'none':\n return BORDER_STYLE.NONE;\n case 'dashed':\n return BORDER_STYLE.DASHED;\n case 'dotted':\n return BORDER_STYLE.DOTTED;\n case 'double':\n return BORDER_STYLE.DOUBLE;\n }\n return BORDER_STYLE.SOLID;\n }\n});\n\nexport const borderTopStyle: IPropertyIdentValueDescriptor = borderStyleForSide('top');\nexport const borderRightStyle: IPropertyIdentValueDescriptor = borderStyleForSide('right');\nexport const borderBottomStyle: IPropertyIdentValueDescriptor = borderStyleForSide('bottom');\nexport const borderLeftStyle: IPropertyIdentValueDescriptor = borderStyleForSide('left');\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nconst borderWidthForSide = (side: string): IPropertyValueDescriptor => ({\n name: `border-${side}-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n});\n\nexport const borderTopWidth: IPropertyValueDescriptor = borderWidthForSide('top');\nexport const borderRightWidth: IPropertyValueDescriptor = borderWidthForSide('right');\nexport const borderBottomWidth: IPropertyValueDescriptor = borderWidthForSide('bottom');\nexport const borderLeftWidth: IPropertyValueDescriptor = borderWidthForSide('left');\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const color: IPropertyTypeValueDescriptor = {\n name: `color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\n\nexport const enum DIRECTION {\n LTR = 0,\n RTL = 1\n}\n\nexport const direction: IPropertyIdentValueDescriptor = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, direction: string) => {\n switch (direction) {\n case 'rtl':\n return DIRECTION.RTL;\n case 'ltr':\n default:\n return DIRECTION.LTR;\n }\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum DISPLAY {\n NONE = 0,\n BLOCK = 1 << 1,\n INLINE = 1 << 2,\n RUN_IN = 1 << 3,\n FLOW = 1 << 4,\n FLOW_ROOT = 1 << 5,\n TABLE = 1 << 6,\n FLEX = 1 << 7,\n GRID = 1 << 8,\n RUBY = 1 << 9,\n SUBGRID = 1 << 10,\n LIST_ITEM = 1 << 11,\n TABLE_ROW_GROUP = 1 << 12,\n TABLE_HEADER_GROUP = 1 << 13,\n TABLE_FOOTER_GROUP = 1 << 14,\n TABLE_ROW = 1 << 15,\n TABLE_CELL = 1 << 16,\n TABLE_COLUMN_GROUP = 1 << 17,\n TABLE_COLUMN = 1 << 18,\n TABLE_CAPTION = 1 << 19,\n RUBY_BASE = 1 << 20,\n RUBY_TEXT = 1 << 21,\n RUBY_BASE_CONTAINER = 1 << 22,\n RUBY_TEXT_CONTAINER = 1 << 23,\n CONTENTS = 1 << 24,\n INLINE_BLOCK = 1 << 25,\n INLINE_LIST_ITEM = 1 << 26,\n INLINE_TABLE = 1 << 27,\n INLINE_FLEX = 1 << 28,\n INLINE_GRID = 1 << 29\n}\n\nexport type Display = number;\n\nexport const display: IPropertyListDescriptor = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): Display => {\n return tokens.filter(isIdentToken).reduce((bit, token) => {\n return bit | parseDisplayValue(token.value);\n }, DISPLAY.NONE);\n }\n};\n\nconst parseDisplayValue = (display: string): Display => {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return DISPLAY.BLOCK;\n case 'inline':\n return DISPLAY.INLINE;\n case 'run-in':\n return DISPLAY.RUN_IN;\n case 'flow':\n return DISPLAY.FLOW;\n case 'flow-root':\n return DISPLAY.FLOW_ROOT;\n case 'table':\n return DISPLAY.TABLE;\n case 'flex':\n case '-webkit-flex':\n return DISPLAY.FLEX;\n case 'grid':\n case '-ms-grid':\n return DISPLAY.GRID;\n case 'ruby':\n return DISPLAY.RUBY;\n case 'subgrid':\n return DISPLAY.SUBGRID;\n case 'list-item':\n return DISPLAY.LIST_ITEM;\n case 'table-row-group':\n return DISPLAY.TABLE_ROW_GROUP;\n case 'table-header-group':\n return DISPLAY.TABLE_HEADER_GROUP;\n case 'table-footer-group':\n return DISPLAY.TABLE_FOOTER_GROUP;\n case 'table-row':\n return DISPLAY.TABLE_ROW;\n case 'table-cell':\n return DISPLAY.TABLE_CELL;\n case 'table-column-group':\n return DISPLAY.TABLE_COLUMN_GROUP;\n case 'table-column':\n return DISPLAY.TABLE_COLUMN;\n case 'table-caption':\n return DISPLAY.TABLE_CAPTION;\n case 'ruby-base':\n return DISPLAY.RUBY_BASE;\n case 'ruby-text':\n return DISPLAY.RUBY_TEXT;\n case 'ruby-base-container':\n return DISPLAY.RUBY_BASE_CONTAINER;\n case 'ruby-text-container':\n return DISPLAY.RUBY_TEXT_CONTAINER;\n case 'contents':\n return DISPLAY.CONTENTS;\n case 'inline-block':\n return DISPLAY.INLINE_BLOCK;\n case 'inline-list-item':\n return DISPLAY.INLINE_LIST_ITEM;\n case 'inline-table':\n return DISPLAY.INLINE_TABLE;\n case 'inline-flex':\n return DISPLAY.INLINE_FLEX;\n case 'inline-grid':\n return DISPLAY.INLINE_GRID;\n }\n\n return DISPLAY.NONE;\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FLOAT {\n NONE = 0,\n LEFT = 1,\n RIGHT = 2,\n INLINE_START = 3,\n INLINE_END = 4\n}\n\nexport const float: IPropertyIdentValueDescriptor = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, float: string) => {\n switch (float) {\n case 'left':\n return FLOAT.LEFT;\n case 'right':\n return FLOAT.RIGHT;\n case 'inline-start':\n return FLOAT.INLINE_START;\n case 'inline-end':\n return FLOAT.INLINE_END;\n }\n return FLOAT.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport const letterSpacing: IPropertyValueDescriptor = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'normal') {\n return 0;\n }\n\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.DIMENSION_TOKEN) {\n return token.number;\n }\n\n return 0;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum WORD_BREAK {\n NORMAL = 'normal',\n BREAK_ALL = 'break-all',\n KEEP_ALL = 'keep-all'\n}\n\nexport const wordBreak: IPropertyIdentValueDescriptor = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, wordBreak: string): WORD_BREAK => {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {getAbsoluteValue, isLengthPercentage} from '../types/length-percentage';\nexport const lineHeight: IPropertyTokenValueDescriptor = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n};\n\nexport const computeLineHeight = (token: CSSValue, fontSize: number): number => {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n } else if (token.type === TokenType.NUMBER_TOKEN) {\n return fontSize * token.number;\n } else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n\n return fontSize;\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image} from '../types/image';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const listStyleImage: IPropertyValueDescriptor = {\n name: 'list-style-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n return image.parse(context, token);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_POSITION {\n INSIDE = 0,\n OUTSIDE = 1\n}\n\nexport const listStylePosition: IPropertyIdentValueDescriptor = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'inside':\n return LIST_STYLE_POSITION.INSIDE;\n case 'outside':\n default:\n return LIST_STYLE_POSITION.OUTSIDE;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_TYPE {\n NONE = -1,\n DISC = 0,\n CIRCLE = 1,\n SQUARE = 2,\n DECIMAL = 3,\n CJK_DECIMAL = 4,\n DECIMAL_LEADING_ZERO = 5,\n LOWER_ROMAN = 6,\n UPPER_ROMAN = 7,\n LOWER_GREEK = 8,\n LOWER_ALPHA = 9,\n UPPER_ALPHA = 10,\n ARABIC_INDIC = 11,\n ARMENIAN = 12,\n BENGALI = 13,\n CAMBODIAN = 14,\n CJK_EARTHLY_BRANCH = 15,\n CJK_HEAVENLY_STEM = 16,\n CJK_IDEOGRAPHIC = 17,\n DEVANAGARI = 18,\n ETHIOPIC_NUMERIC = 19,\n GEORGIAN = 20,\n GUJARATI = 21,\n GURMUKHI = 22,\n HEBREW = 22,\n HIRAGANA = 23,\n HIRAGANA_IROHA = 24,\n JAPANESE_FORMAL = 25,\n JAPANESE_INFORMAL = 26,\n KANNADA = 27,\n KATAKANA = 28,\n KATAKANA_IROHA = 29,\n KHMER = 30,\n KOREAN_HANGUL_FORMAL = 31,\n KOREAN_HANJA_FORMAL = 32,\n KOREAN_HANJA_INFORMAL = 33,\n LAO = 34,\n LOWER_ARMENIAN = 35,\n MALAYALAM = 36,\n MONGOLIAN = 37,\n MYANMAR = 38,\n ORIYA = 39,\n PERSIAN = 40,\n SIMP_CHINESE_FORMAL = 41,\n SIMP_CHINESE_INFORMAL = 42,\n TAMIL = 43,\n TELUGU = 44,\n THAI = 45,\n TIBETAN = 46,\n TRAD_CHINESE_FORMAL = 47,\n TRAD_CHINESE_INFORMAL = 48,\n UPPER_ARMENIAN = 49,\n DISCLOSURE_OPEN = 50,\n DISCLOSURE_CLOSED = 51\n}\n\nexport const listStyleType: IPropertyIdentValueDescriptor = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, type: string) => {\n switch (type) {\n case 'disc':\n return LIST_STYLE_TYPE.DISC;\n case 'circle':\n return LIST_STYLE_TYPE.CIRCLE;\n case 'square':\n return LIST_STYLE_TYPE.SQUARE;\n case 'decimal':\n return LIST_STYLE_TYPE.DECIMAL;\n case 'cjk-decimal':\n return LIST_STYLE_TYPE.CJK_DECIMAL;\n case 'decimal-leading-zero':\n return LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO;\n case 'lower-roman':\n return LIST_STYLE_TYPE.LOWER_ROMAN;\n case 'upper-roman':\n return LIST_STYLE_TYPE.UPPER_ROMAN;\n case 'lower-greek':\n return LIST_STYLE_TYPE.LOWER_GREEK;\n case 'lower-alpha':\n return LIST_STYLE_TYPE.LOWER_ALPHA;\n case 'upper-alpha':\n return LIST_STYLE_TYPE.UPPER_ALPHA;\n case 'arabic-indic':\n return LIST_STYLE_TYPE.ARABIC_INDIC;\n case 'armenian':\n return LIST_STYLE_TYPE.ARMENIAN;\n case 'bengali':\n return LIST_STYLE_TYPE.BENGALI;\n case 'cambodian':\n return LIST_STYLE_TYPE.CAMBODIAN;\n case 'cjk-earthly-branch':\n return LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH;\n case 'cjk-heavenly-stem':\n return LIST_STYLE_TYPE.CJK_HEAVENLY_STEM;\n case 'cjk-ideographic':\n return LIST_STYLE_TYPE.CJK_IDEOGRAPHIC;\n case 'devanagari':\n return LIST_STYLE_TYPE.DEVANAGARI;\n case 'ethiopic-numeric':\n return LIST_STYLE_TYPE.ETHIOPIC_NUMERIC;\n case 'georgian':\n return LIST_STYLE_TYPE.GEORGIAN;\n case 'gujarati':\n return LIST_STYLE_TYPE.GUJARATI;\n case 'gurmukhi':\n return LIST_STYLE_TYPE.GURMUKHI;\n case 'hebrew':\n return LIST_STYLE_TYPE.HEBREW;\n case 'hiragana':\n return LIST_STYLE_TYPE.HIRAGANA;\n case 'hiragana-iroha':\n return LIST_STYLE_TYPE.HIRAGANA_IROHA;\n case 'japanese-formal':\n return LIST_STYLE_TYPE.JAPANESE_FORMAL;\n case 'japanese-informal':\n return LIST_STYLE_TYPE.JAPANESE_INFORMAL;\n case 'kannada':\n return LIST_STYLE_TYPE.KANNADA;\n case 'katakana':\n return LIST_STYLE_TYPE.KATAKANA;\n case 'katakana-iroha':\n return LIST_STYLE_TYPE.KATAKANA_IROHA;\n case 'khmer':\n return LIST_STYLE_TYPE.KHMER;\n case 'korean-hangul-formal':\n return LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL;\n case 'korean-hanja-formal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL;\n case 'korean-hanja-informal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL;\n case 'lao':\n return LIST_STYLE_TYPE.LAO;\n case 'lower-armenian':\n return LIST_STYLE_TYPE.LOWER_ARMENIAN;\n case 'malayalam':\n return LIST_STYLE_TYPE.MALAYALAM;\n case 'mongolian':\n return LIST_STYLE_TYPE.MONGOLIAN;\n case 'myanmar':\n return LIST_STYLE_TYPE.MYANMAR;\n case 'oriya':\n return LIST_STYLE_TYPE.ORIYA;\n case 'persian':\n return LIST_STYLE_TYPE.PERSIAN;\n case 'simp-chinese-formal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL;\n case 'simp-chinese-informal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL;\n case 'tamil':\n return LIST_STYLE_TYPE.TAMIL;\n case 'telugu':\n return LIST_STYLE_TYPE.TELUGU;\n case 'thai':\n return LIST_STYLE_TYPE.THAI;\n case 'tibetan':\n return LIST_STYLE_TYPE.TIBETAN;\n case 'trad-chinese-formal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL;\n case 'trad-chinese-informal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL;\n case 'upper-armenian':\n return LIST_STYLE_TYPE.UPPER_ARMENIAN;\n case 'disclosure-open':\n return LIST_STYLE_TYPE.DISCLOSURE_OPEN;\n case 'disclosure-closed':\n return LIST_STYLE_TYPE.DISCLOSURE_CLOSED;\n case 'none':\n default:\n return LIST_STYLE_TYPE.NONE;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst marginForSide = (side: string): IPropertyTokenValueDescriptor => ({\n name: `margin-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n});\n\nexport const marginTop: IPropertyTokenValueDescriptor = marginForSide('top');\nexport const marginRight: IPropertyTokenValueDescriptor = marginForSide('right');\nexport const marginBottom: IPropertyTokenValueDescriptor = marginForSide('bottom');\nexport const marginLeft: IPropertyTokenValueDescriptor = marginForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW {\n VISIBLE = 0,\n HIDDEN = 1,\n SCROLL = 2,\n CLIP = 3,\n AUTO = 4\n}\n\nexport const overflow: IPropertyListDescriptor = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): OVERFLOW[] => {\n return tokens.filter(isIdentToken).map((overflow) => {\n switch (overflow.value) {\n case 'hidden':\n return OVERFLOW.HIDDEN;\n case 'scroll':\n return OVERFLOW.SCROLL;\n case 'clip':\n return OVERFLOW.CLIP;\n case 'auto':\n return OVERFLOW.AUTO;\n case 'visible':\n default:\n return OVERFLOW.VISIBLE;\n }\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW_WRAP {\n NORMAL = 'normal',\n BREAK_WORD = 'break-word'\n}\n\nexport const overflowWrap: IPropertyIdentValueDescriptor = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'break-word':\n return OVERFLOW_WRAP.BREAK_WORD;\n case 'normal':\n default:\n return OVERFLOW_WRAP.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst paddingForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `padding-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length-percentage'\n});\n\nexport const paddingTop: IPropertyTypeValueDescriptor = paddingForSide('top');\nexport const paddingRight: IPropertyTypeValueDescriptor = paddingForSide('right');\nexport const paddingBottom: IPropertyTypeValueDescriptor = paddingForSide('bottom');\nexport const paddingLeft: IPropertyTypeValueDescriptor = paddingForSide('left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_ALIGN {\n LEFT = 0,\n CENTER = 1,\n RIGHT = 2\n}\n\nexport const textAlign: IPropertyIdentValueDescriptor = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textAlign: string) => {\n switch (textAlign) {\n case 'right':\n return TEXT_ALIGN.RIGHT;\n case 'center':\n case 'justify':\n return TEXT_ALIGN.CENTER;\n case 'left':\n default:\n return TEXT_ALIGN.LEFT;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum POSITION {\n STATIC = 0,\n RELATIVE = 1,\n ABSOLUTE = 2,\n FIXED = 3,\n STICKY = 4\n}\n\nexport const position: IPropertyIdentValueDescriptor = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'relative':\n return POSITION.RELATIVE;\n case 'absolute':\n return POSITION.ABSOLUTE;\n case 'fixed':\n return POSITION.FIXED;\n case 'sticky':\n return POSITION.STICKY;\n }\n\n return POSITION.STATIC;\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color, COLORS} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type TextShadow = TextShadowItem[];\ninterface TextShadowItem {\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n}\n\nexport const textShadow: IPropertyListDescriptor = {\n name: 'text-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): TextShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: TextShadowItem = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else {\n shadow.blur = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_TRANSFORM {\n NONE = 0,\n LOWERCASE = 1,\n UPPERCASE = 2,\n CAPITALIZE = 3\n}\n\nexport const textTransform: IPropertyIdentValueDescriptor = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textTransform: string) => {\n switch (textTransform) {\n case 'uppercase':\n return TEXT_TRANSFORM.UPPERCASE;\n case 'lowercase':\n return TEXT_TRANSFORM.LOWERCASE;\n case 'capitalize':\n return TEXT_TRANSFORM.CAPITALIZE;\n }\n\n return TEXT_TRANSFORM.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type Matrix = [number, number, number, number, number, number];\nexport type Transform = Matrix | null;\n\nexport const transform: IPropertyValueDescriptor = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n if (token.type === TokenType.FUNCTION) {\n const transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported transform function \"${token.name}\"`);\n }\n return transformFunction(token.values);\n }\n\n return null;\n }\n};\n\nconst matrix = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n return values.length === 6 ? (values as Matrix) : null;\n};\n\n// doesn't support 3D transforms at the moment\nconst matrix3d = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n const [a1, b1, {}, {}, a2, b2, {}, {}, {}, {}, {}, {}, a4, b4, {}, {}] = values;\n\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n};\n\nconst SUPPORTED_TRANSFORM_FUNCTIONS: {\n [key: string]: (args: CSSValue[]) => Transform;\n} = {\n matrix: matrix,\n matrix3d: matrix3d\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {FLAG_INTEGER, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type TransformOrigin = [LengthPercentage, LengthPercentage];\n\nconst DEFAULT_VALUE: LengthPercentage = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\nconst DEFAULT: TransformOrigin = [DEFAULT_VALUE, DEFAULT_VALUE];\n\nexport const transformOrigin: IPropertyListDescriptor = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const origins: LengthPercentage[] = tokens.filter(isLengthPercentage);\n\n if (origins.length !== 2) {\n return DEFAULT;\n }\n\n return [origins[0], origins[1]];\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum VISIBILITY {\n VISIBLE = 0,\n HIDDEN = 1,\n COLLAPSE = 2\n}\n\nexport const visibility: IPropertyIdentValueDescriptor = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, visibility: string) => {\n switch (visibility) {\n case 'hidden':\n return VISIBILITY.HIDDEN;\n case 'collapse':\n return VISIBILITY.COLLAPSE;\n case 'visible':\n default:\n return VISIBILITY.VISIBLE;\n }\n }\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\ninterface zIndex {\n order: number;\n auto: boolean;\n}\n\nexport const zIndex: IPropertyValueDescriptor = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue): zIndex => {\n if (token.type === TokenType.IDENT_TOKEN) {\n return {auto: true, order: 0};\n }\n\n if (isNumberToken(token)) {\n return {auto: false, order: token.number};\n }\n\n throw new Error(`Invalid z-index number parsed`);\n }\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {Context} from '../../core/context';\n\nexport const time: ITypeDescriptor = {\n name: 'time',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n\n throw new Error(`Unsupported time type`);\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const opacity: IPropertyValueDescriptor = {\n name: 'opacity',\n initialValue: '1',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const textDecorationColor: IPropertyTypeValueDescriptor = {\n name: `text-decoration-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum TEXT_DECORATION_LINE {\n NONE = 0,\n UNDERLINE = 1,\n OVERLINE = 2,\n LINE_THROUGH = 3,\n BLINK = 4\n}\n\nexport type TextDecorationLine = TEXT_DECORATION_LINE[];\n\nexport const textDecorationLine: IPropertyListDescriptor = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): TextDecorationLine => {\n return tokens\n .filter(isIdentToken)\n .map((token) => {\n switch (token.value) {\n case 'underline':\n return TEXT_DECORATION_LINE.UNDERLINE;\n case 'overline':\n return TEXT_DECORATION_LINE.OVERLINE;\n case 'line-through':\n return TEXT_DECORATION_LINE.LINE_THROUGH;\n case 'none':\n return TEXT_DECORATION_LINE.BLINK;\n }\n return TEXT_DECORATION_LINE.NONE;\n })\n .filter((line) => line !== TEXT_DECORATION_LINE.NONE);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport type FONT_FAMILY = string;\n\nexport type FontFamily = FONT_FAMILY[];\n\nexport const fontFamily: IPropertyListDescriptor = {\n name: `font-family`,\n initialValue: '',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const accumulator: string[] = [];\n const results: string[] = [];\n tokens.forEach((token) => {\n switch (token.type) {\n case TokenType.IDENT_TOKEN:\n case TokenType.STRING_TOKEN:\n accumulator.push(token.value);\n break;\n case TokenType.NUMBER_TOKEN:\n accumulator.push(token.number.toString());\n break;\n case TokenType.COMMA_TOKEN:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map((result) => (result.indexOf(' ') === -1 ? result : `'${result}'`));\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const fontSize: IPropertyTypeValueDescriptor = {\n name: `font-size`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length'\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontWeight: IPropertyValueDescriptor = {\n name: 'font-weight',\n initialValue: 'normal',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n\n return 400;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontVariant: IPropertyListDescriptor = {\n name: 'font-variant',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): string[] => {\n return tokens.filter(isIdentToken).map((token) => token.value);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FONT_STYLE {\n NORMAL = 'normal',\n ITALIC = 'italic',\n OBLIQUE = 'oblique'\n}\n\nexport const fontStyle: IPropertyIdentValueDescriptor = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'oblique':\n return FONT_STYLE.OBLIQUE;\n case 'italic':\n return FONT_STYLE.ITALIC;\n case 'normal':\n default:\n return FONT_STYLE.NORMAL;\n }\n }\n};\n","export const contains = (bit: number, value: number): boolean => (bit & value) !== 0;\n","import {TokenType} from '../syntax/tokenizer';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport type Content = CSSValue[];\n\nexport const content: IPropertyListDescriptor = {\n name: 'content',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_INCREMENT {\n counter: string;\n increment: number;\n}\n\nexport type CounterIncrement = COUNTER_INCREMENT[] | null;\n\nexport const counterIncrement: IPropertyListDescriptor = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const increments = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (counter.type === TokenType.IDENT_TOKEN) {\n const increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({counter: counter.value, increment});\n }\n }\n\n return increments;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_RESET {\n counter: string;\n reset: number;\n}\n\nexport type CounterReset = COUNTER_RESET[];\n\nexport const counterReset: IPropertyListDescriptor = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const resets = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n const reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({counter: counter.value, reset});\n }\n }\n\n return resets;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {time} from '../types/time';\n\nexport const duration: IPropertyListDescriptor = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (context: Context, tokens: CSSValue[]) => {\n return tokens.filter(isDimensionToken).map((token) => time.parse(context, token));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isStringToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface QUOTE {\n open: string;\n close: string;\n}\n\nexport type Quotes = QUOTE[] | null;\n\nexport const quotes: IPropertyListDescriptor = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const quotes = [];\n const filtered = tokens.filter(isStringToken);\n\n if (filtered.length % 2 !== 0) {\n return null;\n }\n\n for (let i = 0; i < filtered.length; i += 2) {\n const open = filtered[i].value;\n const close = filtered[i + 1].value;\n quotes.push({open, close});\n }\n\n return quotes;\n }\n};\n\nexport const getQuote = (quotes: Quotes, depth: number, open: boolean): string => {\n if (!quotes) {\n return '';\n }\n\n const quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n\n return open ? quote.open : quote.close;\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type BoxShadow = BoxShadowItem[];\ninterface BoxShadowItem {\n inset: boolean;\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n spread: Length;\n}\n\nexport const boxShadow: IPropertyListDescriptor = {\n name: 'box-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): BoxShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: BoxShadowItem = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n } else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else if (c === 2) {\n shadow.blur = token;\n } else {\n shadow.spread = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum PAINT_ORDER_LAYER {\n FILL,\n STROKE,\n MARKERS\n}\n\nexport type PaintOrder = PAINT_ORDER_LAYER[];\n\nexport const paintOrder: IPropertyListDescriptor = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): PaintOrder => {\n const DEFAULT_VALUE = [PAINT_ORDER_LAYER.FILL, PAINT_ORDER_LAYER.STROKE, PAINT_ORDER_LAYER.MARKERS];\n const layers: PaintOrder = [];\n\n tokens.filter(isIdentToken).forEach((token) => {\n switch (token.value) {\n case 'stroke':\n layers.push(PAINT_ORDER_LAYER.STROKE);\n break;\n case 'fill':\n layers.push(PAINT_ORDER_LAYER.FILL);\n break;\n case 'markers':\n layers.push(PAINT_ORDER_LAYER.MARKERS);\n break;\n }\n });\n DEFAULT_VALUE.forEach((value) => {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n\n return layers;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nexport const webkitTextStrokeColor: IPropertyTypeValueDescriptor = {\n name: `-webkit-text-stroke-color`,\n initialValue: 'currentcolor',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const webkitTextStrokeWidth: IPropertyValueDescriptor = {\n name: `-webkit-text-stroke-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n};\n","import {CSSPropertyDescriptor, PropertyDescriptorParsingType} from './IPropertyDescriptor';\nimport {backgroundClip} from './property-descriptors/background-clip';\nimport {backgroundColor} from './property-descriptors/background-color';\nimport {backgroundImage} from './property-descriptors/background-image';\nimport {backgroundOrigin} from './property-descriptors/background-origin';\nimport {backgroundPosition} from './property-descriptors/background-position';\nimport {backgroundRepeat} from './property-descriptors/background-repeat';\nimport {backgroundSize} from './property-descriptors/background-size';\nimport {\n borderBottomColor,\n borderLeftColor,\n borderRightColor,\n borderTopColor\n} from './property-descriptors/border-color';\nimport {\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderTopLeftRadius,\n borderTopRightRadius\n} from './property-descriptors/border-radius';\nimport {\n borderBottomStyle,\n borderLeftStyle,\n borderRightStyle,\n borderTopStyle\n} from './property-descriptors/border-style';\nimport {\n borderBottomWidth,\n borderLeftWidth,\n borderRightWidth,\n borderTopWidth\n} from './property-descriptors/border-width';\nimport {color} from './property-descriptors/color';\nimport {direction} from './property-descriptors/direction';\nimport {display, DISPLAY} from './property-descriptors/display';\nimport {float, FLOAT} from './property-descriptors/float';\nimport {letterSpacing} from './property-descriptors/letter-spacing';\nimport {lineBreak} from './property-descriptors/line-break';\nimport {lineHeight} from './property-descriptors/line-height';\nimport {listStyleImage} from './property-descriptors/list-style-image';\nimport {listStylePosition} from './property-descriptors/list-style-position';\nimport {listStyleType} from './property-descriptors/list-style-type';\nimport {marginBottom, marginLeft, marginRight, marginTop} from './property-descriptors/margin';\nimport {overflow, OVERFLOW} from './property-descriptors/overflow';\nimport {overflowWrap} from './property-descriptors/overflow-wrap';\nimport {paddingBottom, paddingLeft, paddingRight, paddingTop} from './property-descriptors/padding';\nimport {textAlign} from './property-descriptors/text-align';\nimport {position, POSITION} from './property-descriptors/position';\nimport {textShadow} from './property-descriptors/text-shadow';\nimport {textTransform} from './property-descriptors/text-transform';\nimport {transform} from './property-descriptors/transform';\nimport {transformOrigin} from './property-descriptors/transform-origin';\nimport {visibility, VISIBILITY} from './property-descriptors/visibility';\nimport {wordBreak} from './property-descriptors/word-break';\nimport {zIndex} from './property-descriptors/z-index';\nimport {CSSValue, isIdentToken, Parser} from './syntax/parser';\nimport {Tokenizer} from './syntax/tokenizer';\nimport {Color, color as colorType, isTransparent} from './types/color';\nimport {angle} from './types/angle';\nimport {image} from './types/image';\nimport {time} from './types/time';\nimport {opacity} from './property-descriptors/opacity';\nimport {textDecorationColor} from './property-descriptors/text-decoration-color';\nimport {textDecorationLine} from './property-descriptors/text-decoration-line';\nimport {isLengthPercentage, LengthPercentage, ZERO_LENGTH} from './types/length-percentage';\nimport {fontFamily} from './property-descriptors/font-family';\nimport {fontSize} from './property-descriptors/font-size';\nimport {isLength} from './types/length';\nimport {fontWeight} from './property-descriptors/font-weight';\nimport {fontVariant} from './property-descriptors/font-variant';\nimport {fontStyle} from './property-descriptors/font-style';\nimport {contains} from '../core/bitwise';\nimport {content} from './property-descriptors/content';\nimport {counterIncrement} from './property-descriptors/counter-increment';\nimport {counterReset} from './property-descriptors/counter-reset';\nimport {duration} from './property-descriptors/duration';\nimport {quotes} from './property-descriptors/quotes';\nimport {boxShadow} from './property-descriptors/box-shadow';\nimport {paintOrder} from './property-descriptors/paint-order';\nimport {webkitTextStrokeColor} from './property-descriptors/webkit-text-stroke-color';\nimport {webkitTextStrokeWidth} from './property-descriptors/webkit-text-stroke-width';\nimport {Context} from '../core/context';\n\nexport class CSSParsedDeclaration {\n animationDuration: ReturnType;\n backgroundClip: ReturnType;\n backgroundColor: Color;\n backgroundImage: ReturnType;\n backgroundOrigin: ReturnType;\n backgroundPosition: ReturnType;\n backgroundRepeat: ReturnType;\n backgroundSize: ReturnType;\n borderTopColor: Color;\n borderRightColor: Color;\n borderBottomColor: Color;\n borderLeftColor: Color;\n borderTopLeftRadius: ReturnType;\n borderTopRightRadius: ReturnType;\n borderBottomRightRadius: ReturnType;\n borderBottomLeftRadius: ReturnType;\n borderTopStyle: ReturnType;\n borderRightStyle: ReturnType;\n borderBottomStyle: ReturnType;\n borderLeftStyle: ReturnType;\n borderTopWidth: ReturnType;\n borderRightWidth: ReturnType;\n borderBottomWidth: ReturnType;\n borderLeftWidth: ReturnType;\n boxShadow: ReturnType;\n color: Color;\n direction: ReturnType;\n display: ReturnType;\n float: ReturnType;\n fontFamily: ReturnType;\n fontSize: LengthPercentage;\n fontStyle: ReturnType;\n fontVariant: ReturnType;\n fontWeight: ReturnType;\n letterSpacing: ReturnType;\n lineBreak: ReturnType;\n lineHeight: CSSValue;\n listStyleImage: ReturnType;\n listStylePosition: ReturnType;\n listStyleType: ReturnType;\n marginTop: CSSValue;\n marginRight: CSSValue;\n marginBottom: CSSValue;\n marginLeft: CSSValue;\n opacity: ReturnType;\n overflowX: OVERFLOW;\n overflowY: OVERFLOW;\n overflowWrap: ReturnType;\n paddingTop: LengthPercentage;\n paddingRight: LengthPercentage;\n paddingBottom: LengthPercentage;\n paddingLeft: LengthPercentage;\n paintOrder: ReturnType;\n position: ReturnType;\n textAlign: ReturnType;\n textDecorationColor: Color;\n textDecorationLine: ReturnType;\n textShadow: ReturnType;\n textTransform: ReturnType;\n transform: ReturnType;\n transformOrigin: ReturnType;\n visibility: ReturnType;\n webkitTextStrokeColor: Color;\n webkitTextStrokeWidth: ReturnType;\n wordBreak: ReturnType;\n zIndex: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n const overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(\n context,\n textDecorationColor,\n declaration.textDecorationColor ?? declaration.color\n );\n this.textDecorationLine = parse(\n context,\n textDecorationLine,\n declaration.textDecorationLine ?? declaration.textDecoration\n );\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n\n isVisible(): boolean {\n return this.display > 0 && this.opacity > 0 && this.visibility === VISIBILITY.VISIBLE;\n }\n\n isTransparent(): boolean {\n return isTransparent(this.backgroundColor);\n }\n\n isTransformed(): boolean {\n return this.transform !== null;\n }\n\n isPositioned(): boolean {\n return this.position !== POSITION.STATIC;\n }\n\n isPositionedWithZIndex(): boolean {\n return this.isPositioned() && !this.zIndex.auto;\n }\n\n isFloating(): boolean {\n return this.float !== FLOAT.NONE;\n }\n\n isInlineLevel(): boolean {\n return (\n contains(this.display, DISPLAY.INLINE) ||\n contains(this.display, DISPLAY.INLINE_BLOCK) ||\n contains(this.display, DISPLAY.INLINE_FLEX) ||\n contains(this.display, DISPLAY.INLINE_GRID) ||\n contains(this.display, DISPLAY.INLINE_LIST_ITEM) ||\n contains(this.display, DISPLAY.INLINE_TABLE)\n );\n }\n}\n\nexport class CSSParsedPseudoDeclaration {\n content: ReturnType;\n quotes: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n}\n\nexport class CSSParsedCounterDeclaration {\n counterIncrement: ReturnType;\n counterReset: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst parse = (context: Context, descriptor: CSSPropertyDescriptor, style?: string | null) => {\n const tokenizer = new Tokenizer();\n const value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n const parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case PropertyDescriptorParsingType.IDENT_VALUE:\n const token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case PropertyDescriptorParsingType.VALUE:\n return descriptor.parse(context, parser.parseComponentValue());\n case PropertyDescriptorParsingType.LIST:\n return descriptor.parse(context, parser.parseComponentValues());\n case PropertyDescriptorParsingType.TOKEN_VALUE:\n return parser.parseComponentValue();\n case PropertyDescriptorParsingType.TYPE_VALUE:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return colorType.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n const length = parser.parseComponentValue();\n return isLength(length) ? length : ZERO_LENGTH;\n case 'length-percentage':\n const value = parser.parseComponentValue();\n return isLengthPercentage(value) ? value : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n};\n","const elementDebuggerAttribute = 'data-html2canvas-debug';\nexport const enum DebuggerType {\n NONE,\n ALL,\n CLONE,\n PARSE,\n RENDER\n}\n\nconst getElementDebugType = (element: Element): DebuggerType => {\n const attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return DebuggerType.ALL;\n case 'clone':\n return DebuggerType.CLONE;\n case 'parse':\n return DebuggerType.PARSE;\n case 'render':\n return DebuggerType.RENDER;\n default:\n return DebuggerType.NONE;\n }\n};\n\nexport const isDebugging = (element: Element, type: Omit): boolean => {\n const elementType = getElementDebugType(element);\n return elementType === DebuggerType.ALL || type === elementType;\n};\n","import {CSSParsedDeclaration} from '../css/index';\nimport {TextContainer} from './text-container';\nimport {Bounds, parseBounds} from '../css/layout/bounds';\nimport {isHTMLElementNode} from './node-parser';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport const enum FLAGS {\n CREATES_STACKING_CONTEXT = 1 << 1,\n CREATES_REAL_STACKING_CONTEXT = 1 << 2,\n IS_LIST_OWNER = 1 << 3,\n DEBUG_RENDER = 1 << 4\n}\n\nexport class ElementContainer {\n readonly styles: CSSParsedDeclaration;\n readonly textNodes: TextContainer[] = [];\n readonly elements: ElementContainer[] = [];\n bounds: Bounds;\n flags = 0;\n\n constructor(protected readonly context: Context, element: Element) {\n if (isDebugging(element, DebuggerType.PARSE)) {\n debugger;\n }\n\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some((duration) => duration > 0)) {\n element.style.animationDuration = '0s';\n }\n\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n\n this.bounds = parseBounds(this.context, element);\n\n if (isDebugging(element, DebuggerType.RENDER)) {\n this.flags |= FLAGS.DEBUG_RENDER;\n }\n }\n}\n","export const base64 =\n 'AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=';\nexport const byteLength = 19616;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","import {base64, byteLength} from './grapheme-break-trie';\nimport {createTrieFromBase64} from 'utrie';\n\nconst Other = 0;\nconst Prepend = 1;\nconst CR = 2;\nconst LF = 3;\nconst Control = 4;\nconst Extend = 5;\nconst Regional_Indicator = 6;\nconst SpacingMark = 7;\nconst L = 8;\nconst V = 9;\nconst T = 10;\nconst LV = 11;\nconst LVT = 12;\nconst ZWJ = 13;\nconst Extended_Pictographic = 14;\nconst RI = 15;\n\nexport const classes: {[key: string]: number} = {\n Other,\n Prepend,\n CR,\n LF,\n Control,\n Extend,\n Regional_Indicator,\n SpacingMark,\n L,\n V,\n T,\n LV,\n LVT,\n ZWJ,\n Extended_Pictographic,\n RI,\n};\n\nexport const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED;\n\nexport const codePointToClass = (codePoint: number): number => UnicodeTrie.get(codePoint);\n\nconst _graphemeBreakAtIndex = (_codePoints: number[], classTypes: number[], index: number): BREAK_OPPORTUNITIES => {\n let prevIndex = index - 2;\n let prev = classTypes[prevIndex];\n const current = classTypes[index - 1];\n const next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n let countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const graphemeBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // GB1 Break at the start and end of text, unless the text is empty.\n if (index === 0) {\n return BREAK_ALLOWED;\n }\n\n // GB2\n if (index >= codePoints.length) {\n return BREAK_ALLOWED;\n }\n\n const classTypes = codePoints.map(codePointToClass);\n return _graphemeBreakAtIndex(codePoints, classTypes, index);\n};\n\nexport const GraphemeBreaker = (str: string) => {\n const codePoints = toCodePoints(str);\n const length = codePoints.length;\n let index = 0;\n let lastEnd = 0;\n const classTypes = codePoints.map(codePointToClass);\n\n return {\n next: () => {\n if (index >= length) {\n return {done: true, value: null};\n }\n\n let graphemeBreak = BREAK_NOT_ALLOWED;\n while (\n index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED\n ) {}\n\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n const value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n while (index < length) {}\n\n return {done: true, value: null};\n },\n };\n};\n\nexport const splitGraphemes = (str: string): string[] => {\n const breaker = GraphemeBreaker(str);\n\n const graphemes = [];\n let bk;\n\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n\n return graphemes;\n};\n","import {Bounds} from '../css/layout/bounds';\nimport {\n isBodyElement,\n isCanvasElement,\n isCustomElement,\n isElementNode,\n isHTMLElementNode,\n isIFrameElement,\n isImageElement,\n isScriptElement,\n isSelectElement,\n isSlotElement,\n isStyleElement,\n isSVGElementNode,\n isTextareaElement,\n isTextNode,\n isVideoElement\n} from './node-parser';\nimport {isIdentToken, nonFunctionArgSeparator} from '../css/syntax/parser';\nimport {TokenType} from '../css/syntax/tokenizer';\nimport {CounterState, createCounterText} from '../css/types/functions/counter';\nimport {LIST_STYLE_TYPE, listStyleType} from '../css/property-descriptors/list-style-type';\nimport {CSSParsedCounterDeclaration, CSSParsedPseudoDeclaration} from '../css/index';\nimport {getQuote} from '../css/property-descriptors/quotes';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport interface CloneOptions {\n ignoreElements?: (element: Element) => boolean;\n onclone?: (document: Document, element: HTMLElement) => void;\n allowTaint?: boolean;\n}\n\nexport interface WindowOptions {\n scrollX: number;\n scrollY: number;\n windowWidth: number;\n windowHeight: number;\n}\n\nexport type CloneConfigurations = CloneOptions & {\n inlineImages: boolean;\n copyStyles: boolean;\n};\n\nconst IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\n\nexport class DocumentCloner {\n private readonly scrolledElements: [Element, number, number][];\n private readonly referenceElement: HTMLElement;\n clonedReferenceElement?: HTMLElement;\n private readonly documentElement: HTMLElement;\n private readonly counters: CounterState;\n private quoteDepth: number;\n\n constructor(\n private readonly context: Context,\n element: HTMLElement,\n private readonly options: CloneConfigurations\n ) {\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false) as HTMLElement;\n }\n\n toIFrame(ownerDocument: Document, windowSize: Bounds): Promise {\n const iframe: HTMLIFrameElement = createIFrameContainer(ownerDocument, windowSize);\n\n if (!iframe.contentWindow) {\n return Promise.reject(`Unable to find iframe window`);\n }\n\n const scrollX = (ownerDocument.defaultView as Window).pageXOffset;\n const scrollY = (ownerDocument.defaultView as Window).pageYOffset;\n\n const cloneWindow = iframe.contentWindow;\n const documentClone: Document = cloneWindow.document;\n\n /* Chrome doesn't detect relative background-images assigned in inline `;\n };\n\n collectStyles(children: any) {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n return {children};\n }\n\n getStyleTags = (): string => {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n return this._emitSheetCSS();\n };\n\n getStyleElement = () => {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n const props = {\n [SC_ATTR]: '',\n [SC_ATTR_VERSION]: SC_VERSION,\n dangerouslySetInnerHTML: {\n __html: this.instance.toString(),\n },\n };\n\n const nonce = getNonce();\n if (nonce) {\n (props: any).nonce = nonce;\n }\n\n // v4 returned an array for this fn, so we'll do the same for v5 for backward compat\n return [\";\r\n var nW = globalObject.open();\r\n\r\n if (nW !== null) {\r\n nW.document.write(htmlForNewWindow);\r\n }\r\n return nW;\r\n } else {\r\n throw new Error(\r\n \"The option pdfobjectnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n case \"pdfjsnewwindow\":\r\n if (\r\n Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n ) {\r\n var pdfJsUrl = options.pdfJsUrl || \"examples/PDF.js/web/viewer.html\";\r\n var htmlForPDFjsNewWindow =\r\n \"\" +\r\n \"\" +\r\n '' +\r\n \"\";\r\n var dataURLNewWindow = globalObject.open();\r\n if (dataURLNewWindow !== null) {\r\n dataURLNewWindow.document.write(htmlForDataURLNewWindow);\r\n dataURLNewWindow.document.title = options.filename;\r\n }\r\n if (dataURLNewWindow || typeof safari === \"undefined\")\r\n return dataURLNewWindow;\r\n } else {\r\n throw new Error(\r\n \"The option dataurlnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n break;\r\n case \"datauri\":\r\n case \"dataurl\":\r\n return (globalObject.document.location.href = this.output(\r\n \"datauristring\",\r\n options\r\n ));\r\n default:\r\n return null;\r\n }\r\n }));\r\n\r\n /**\r\n * Used to see if a supplied hotfix was requested when the pdf instance was created.\r\n * @param {string} hotfixName - The name of the hotfix to check.\r\n * @returns {boolean}\r\n */\r\n var hasHotfix = function(hotfixName) {\r\n return (\r\n Array.isArray(hotfixes) === true && hotfixes.indexOf(hotfixName) > -1\r\n );\r\n };\r\n\r\n switch (unit) {\r\n case \"pt\":\r\n scaleFactor = 1;\r\n break;\r\n case \"mm\":\r\n scaleFactor = 72 / 25.4;\r\n break;\r\n case \"cm\":\r\n scaleFactor = 72 / 2.54;\r\n break;\r\n case \"in\":\r\n scaleFactor = 72;\r\n break;\r\n case \"px\":\r\n if (hasHotfix(\"px_scaling\") == true) {\r\n scaleFactor = 72 / 96;\r\n } else {\r\n scaleFactor = 96 / 72;\r\n }\r\n break;\r\n case \"pc\":\r\n scaleFactor = 12;\r\n break;\r\n case \"em\":\r\n scaleFactor = 12;\r\n break;\r\n case \"ex\":\r\n scaleFactor = 6;\r\n break;\r\n default:\r\n if (typeof unit === \"number\") {\r\n scaleFactor = unit;\r\n } else {\r\n throw new Error(\"Invalid unit: \" + unit);\r\n }\r\n }\r\n\r\n var encryption = null;\r\n setCreationDate();\r\n setFileId();\r\n\r\n var getEncryptor = function(objectId) {\r\n if (encryptionOptions !== null) {\r\n return encryption.encryptor(objectId, 0);\r\n }\r\n return function(data) {\r\n return data;\r\n };\r\n };\r\n\r\n //---------------------------------------\r\n // Public API\r\n\r\n var getPageInfo = (API.__private__.getPageInfo = API.getPageInfo = function(\r\n pageNumberOneBased\r\n ) {\r\n if (isNaN(pageNumberOneBased) || pageNumberOneBased % 1 !== 0) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");\r\n }\r\n var objId = pagesContext[pageNumberOneBased].objId;\r\n return {\r\n objId: objId,\r\n pageNumber: pageNumberOneBased,\r\n pageContext: pagesContext[pageNumberOneBased]\r\n };\r\n });\r\n\r\n var getPageInfoByObjId = (API.__private__.getPageInfoByObjId = function(\r\n objId\r\n ) {\r\n if (isNaN(objId) || objId % 1 !== 0) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");\r\n }\r\n for (var pageNumber in pagesContext) {\r\n if (pagesContext[pageNumber].objId === objId) {\r\n break;\r\n }\r\n }\r\n return getPageInfo(pageNumber);\r\n });\r\n\r\n var getCurrentPageInfo = (API.__private__.getCurrentPageInfo = API.getCurrentPageInfo = function() {\r\n return {\r\n objId: pagesContext[currentPage].objId,\r\n pageNumber: currentPage,\r\n pageContext: pagesContext[currentPage]\r\n };\r\n });\r\n\r\n /**\r\n * Adds (and transfers the focus to) new page to the PDF document.\r\n * @param format {String/Array} The format of the new page. Can be:
  • a0 - a10
  • b0 - b10
  • c0 - c10
  • dl
  • letter
  • government-letter
  • legal
  • junior-legal
  • ledger
  • tabloid
  • credit-card

\r\n * Default is \"a4\". If you want to use your own format just pass instead of one of the above predefined formats the size as an number-array, e.g. [595.28, 841.89]\r\n * @param orientation {string} Orientation of the new page. Possible values are \"portrait\" or \"landscape\" (or shortcuts \"p\" (Default), \"l\").\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name addPage\r\n */\r\n API.addPage = function() {\r\n _addPage.apply(this, arguments);\r\n return this;\r\n };\r\n /**\r\n * Adds (and transfers the focus to) new page to the PDF document.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name setPage\r\n * @param {number} page Switch the active page to the page number specified (indexed starting at 1).\r\n * @example\r\n * doc = jsPDF()\r\n * doc.addPage()\r\n * doc.addPage()\r\n * doc.text('I am on page 3', 10, 10)\r\n * doc.setPage(1)\r\n * doc.text('I am on page 1', 10, 10)\r\n */\r\n API.setPage = function() {\r\n _setPage.apply(this, arguments);\r\n setOutputDestination.call(this, pages[currentPage]);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name insertPage\r\n * @memberof jsPDF#\r\n *\r\n * @function\r\n * @instance\r\n * @param {Object} beforePage\r\n * @returns {jsPDF}\r\n */\r\n API.insertPage = function(beforePage) {\r\n this.addPage();\r\n this.movePage(currentPage, beforePage);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name movePage\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {number} targetPage\r\n * @param {number} beforePage\r\n * @returns {jsPDF}\r\n */\r\n API.movePage = function(targetPage, beforePage) {\r\n var tmpPages, tmpPagesContext;\r\n if (targetPage > beforePage) {\r\n tmpPages = pages[targetPage];\r\n tmpPagesContext = pagesContext[targetPage];\r\n for (var i = targetPage; i > beforePage; i--) {\r\n pages[i] = pages[i - 1];\r\n pagesContext[i] = pagesContext[i - 1];\r\n }\r\n pages[beforePage] = tmpPages;\r\n pagesContext[beforePage] = tmpPagesContext;\r\n this.setPage(beforePage);\r\n } else if (targetPage < beforePage) {\r\n tmpPages = pages[targetPage];\r\n tmpPagesContext = pagesContext[targetPage];\r\n for (var j = targetPage; j < beforePage; j++) {\r\n pages[j] = pages[j + 1];\r\n pagesContext[j] = pagesContext[j + 1];\r\n }\r\n pages[beforePage] = tmpPages;\r\n pagesContext[beforePage] = tmpPagesContext;\r\n this.setPage(beforePage);\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Deletes a page from the PDF.\r\n * @name deletePage\r\n * @memberof jsPDF#\r\n * @function\r\n * @param {number} targetPage\r\n * @instance\r\n * @returns {jsPDF}\r\n */\r\n API.deletePage = function() {\r\n _deletePage.apply(this, arguments);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds text to page. Supports adding multiline text when 'text' argument is an Array of Strings.\r\n *\r\n * @function\r\n * @instance\r\n * @param {String|Array} text String or array of strings to be added to the page. Each line is shifted one line down per font, spacing settings declared before this call.\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page.\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page.\r\n * @param {Object} [options] - Collection of settings signaling how the text must be encoded.\r\n * @param {string} [options.align=left] - The alignment of the text, possible values: left, center, right, justify.\r\n * @param {string} [options.baseline=alphabetic] - Sets text baseline used when drawing the text, possible values: alphabetic, ideographic, bottom, top, middle, hanging\r\n * @param {number|Matrix} [options.angle=0] - Rotate the text clockwise or counterclockwise. Expects the angle in degree.\r\n * @param {number} [options.rotationDirection=1] - Direction of the rotation. 0 = clockwise, 1 = counterclockwise.\r\n * @param {number} [options.charSpace=0] - The space between each letter.\r\n * @param {number} [options.horizontalScale=1] - Horizontal scale of the text as a factor of the regular size.\r\n * @param {number} [options.lineHeightFactor=1.15] - The lineheight of each line.\r\n * @param {Object} [options.flags] - Flags for to8bitStream.\r\n * @param {boolean} [options.flags.noBOM=true] - Don't add BOM to Unicode-text.\r\n * @param {boolean} [options.flags.autoencode=true] - Autoencode the Text.\r\n * @param {number} [options.maxWidth=0] - Split the text by given width, 0 = no split.\r\n * @param {string} [options.renderingMode=fill] - Set how the text should be rendered, possible values: fill, stroke, fillThenStroke, invisible, fillAndAddForClipping, strokeAndAddPathForClipping, fillThenStrokeAndAddToPathForClipping, addToPathForClipping.\r\n * @param {boolean} [options.isInputVisual] - Option for the BidiEngine\r\n * @param {boolean} [options.isOutputVisual] - Option for the BidiEngine\r\n * @param {boolean} [options.isInputRtl] - Option for the BidiEngine\r\n * @param {boolean} [options.isOutputRtl] - Option for the BidiEngine\r\n * @param {boolean} [options.isSymmetricSwapping] - Option for the BidiEngine\r\n * @param {number|Matrix} transform If transform is a number the text will be rotated by this value around the anchor set by x and y.\r\n *\r\n * If it is a Matrix, this matrix gets directly applied to the text, which allows shearing\r\n * effects etc.; the x and y offsets are then applied AFTER the coordinate system has been established by this\r\n * matrix. This means passing a rotation matrix that is equivalent to some rotation angle will in general yield a\r\n * DIFFERENT result. A matrix is only allowed in \"advanced\" API mode.\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name text\r\n */\r\n API.__private__.text = API.text = function(text, x, y, options, transform) {\r\n /*\r\n * Inserts something like this into PDF\r\n * BT\r\n * /F1 16 Tf % Font name + size\r\n * 16 TL % How many units down for next line in multiline text\r\n * 0 g % color\r\n * 28.35 813.54 Td % position\r\n * (line one) Tj\r\n * T* (line two) Tj\r\n * T* (line three) Tj\r\n * ET\r\n */\r\n options = options || {};\r\n var scope = options.scope || this;\r\n var payload, da, angle, align, charSpace, maxWidth, flags, horizontalScale;\r\n\r\n // Pre-August-2012 the order of arguments was function(x, y, text, flags)\r\n // in effort to make all calls have similar signature like\r\n // function(data, coordinates... , miscellaneous)\r\n // this method had its args flipped.\r\n // code below allows backward compatibility with old arg order.\r\n if (\r\n typeof text === \"number\" &&\r\n typeof x === \"number\" &&\r\n (typeof y === \"string\" || Array.isArray(y))\r\n ) {\r\n var tmp = y;\r\n y = x;\r\n x = text;\r\n text = tmp;\r\n }\r\n\r\n var transformationMatrix;\r\n\r\n if (arguments[3] instanceof Matrix === false) {\r\n flags = arguments[3];\r\n angle = arguments[4];\r\n align = arguments[5];\r\n\r\n if (typeof flags !== \"object\" || flags === null) {\r\n if (typeof angle === \"string\") {\r\n align = angle;\r\n angle = null;\r\n }\r\n if (typeof flags === \"string\") {\r\n align = flags;\r\n flags = null;\r\n }\r\n if (typeof flags === \"number\") {\r\n angle = flags;\r\n flags = null;\r\n }\r\n options = {\r\n flags: flags,\r\n angle: angle,\r\n align: align\r\n };\r\n }\r\n } else {\r\n advancedApiModeTrap(\r\n \"The transform parameter of text() with a Matrix value\"\r\n );\r\n transformationMatrix = transform;\r\n }\r\n\r\n if (isNaN(x) || isNaN(y) || typeof text === \"undefined\" || text === null) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.text\");\r\n }\r\n\r\n if (text.length === 0) {\r\n return scope;\r\n }\r\n\r\n var xtra = \"\";\r\n var isHex = false;\r\n var lineHeight =\r\n typeof options.lineHeightFactor === \"number\"\r\n ? options.lineHeightFactor\r\n : lineHeightFactor;\r\n var scaleFactor = scope.internal.scaleFactor;\r\n\r\n function ESC(s) {\r\n s = s.split(\"\\t\").join(Array(options.TabLen || 9).join(\" \"));\r\n return pdfEscape(s, flags);\r\n }\r\n\r\n function transformTextToSpecialArray(text) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n var da = [];\r\n var len = sa.length;\r\n var curDa;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (typeof curDa === \"string\") {\r\n da.push(curDa);\r\n } else {\r\n if (\r\n Array.isArray(text) &&\r\n (curDa.length === 1 ||\r\n (curDa[1] === undefined && curDa[2] === undefined))\r\n ) {\r\n da.push(curDa[0]);\r\n } else {\r\n da.push([curDa[0], curDa[1], curDa[2]]);\r\n }\r\n }\r\n }\r\n return da;\r\n }\r\n\r\n function processTextByFunction(text, processingFunction) {\r\n var result;\r\n if (typeof text === \"string\") {\r\n result = processingFunction(text)[0];\r\n } else if (Array.isArray(text)) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n var da = [];\r\n var len = sa.length;\r\n var curDa;\r\n var tmpResult;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (typeof curDa === \"string\") {\r\n da.push(processingFunction(curDa)[0]);\r\n } else if (Array.isArray(curDa) && typeof curDa[0] === \"string\") {\r\n tmpResult = processingFunction(curDa[0], curDa[1], curDa[2]);\r\n da.push([tmpResult[0], tmpResult[1], tmpResult[2]]);\r\n }\r\n }\r\n result = da;\r\n }\r\n return result;\r\n }\r\n\r\n //Check if text is of type String\r\n var textIsOfTypeString = false;\r\n var tmpTextIsOfTypeString = true;\r\n\r\n if (typeof text === \"string\") {\r\n textIsOfTypeString = true;\r\n } else if (Array.isArray(text)) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n da = [];\r\n var len = sa.length;\r\n var curDa;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (\r\n typeof curDa !== \"string\" ||\r\n (Array.isArray(curDa) && typeof curDa[0] !== \"string\")\r\n ) {\r\n tmpTextIsOfTypeString = false;\r\n }\r\n }\r\n textIsOfTypeString = tmpTextIsOfTypeString;\r\n }\r\n if (textIsOfTypeString === false) {\r\n throw new Error(\r\n 'Type of text must be string or Array. \"' +\r\n text +\r\n '\" is not recognized.'\r\n );\r\n }\r\n\r\n //If there are any newlines in text, we assume\r\n //the user wanted to print multiple lines, so break the\r\n //text up into an array. If the text is already an array,\r\n //we assume the user knows what they are doing.\r\n //Convert text into an array anyway to simplify\r\n //later code.\r\n\r\n if (typeof text === \"string\") {\r\n if (text.match(/[\\r?\\n]/)) {\r\n text = text.split(/\\r\\n|\\r|\\n/g);\r\n } else {\r\n text = [text];\r\n }\r\n }\r\n\r\n //baseline\r\n var height = activeFontSize / scope.internal.scaleFactor;\r\n var descent = height * (lineHeight - 1);\r\n\r\n switch (options.baseline) {\r\n case \"bottom\":\r\n y -= descent;\r\n break;\r\n case \"top\":\r\n y += height - descent;\r\n break;\r\n case \"hanging\":\r\n y += height - 2 * descent;\r\n break;\r\n case \"middle\":\r\n y += height / 2 - descent;\r\n break;\r\n case \"ideographic\":\r\n case \"alphabetic\":\r\n default:\r\n // do nothing, everything is fine\r\n break;\r\n }\r\n\r\n //multiline\r\n maxWidth = options.maxWidth || 0;\r\n\r\n if (maxWidth > 0) {\r\n if (typeof text === \"string\") {\r\n text = scope.splitTextToSize(text, maxWidth);\r\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n text = text.reduce(function(acc, textLine) {\r\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\r\n }, []);\r\n }\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"preProcessText\", payload);\r\n\r\n text = payload.text;\r\n options = payload.options;\r\n\r\n //angle\r\n angle = options.angle;\r\n\r\n if (\r\n transformationMatrix instanceof Matrix === false &&\r\n angle &&\r\n typeof angle === \"number\"\r\n ) {\r\n angle *= Math.PI / 180;\r\n\r\n if (options.rotationDirection === 0) {\r\n angle = -angle;\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n angle = -angle;\r\n }\r\n\r\n var c = Math.cos(angle);\r\n var s = Math.sin(angle);\r\n transformationMatrix = new Matrix(c, s, -s, c, 0, 0);\r\n } else if (angle && angle instanceof Matrix) {\r\n transformationMatrix = angle;\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED && !transformationMatrix) {\r\n transformationMatrix = identityMatrix;\r\n }\r\n\r\n //charSpace\r\n\r\n charSpace = options.charSpace || activeCharSpace;\r\n\r\n if (typeof charSpace !== \"undefined\") {\r\n xtra += hpf(scale(charSpace)) + \" Tc\\n\";\r\n this.setCharSpace(this.getCharSpace() || 0);\r\n }\r\n\r\n horizontalScale = options.horizontalScale;\r\n if (typeof horizontalScale !== \"undefined\") {\r\n xtra += hpf(horizontalScale * 100) + \" Tz\\n\";\r\n }\r\n\r\n //lang\r\n\r\n var lang = options.lang;\r\n\r\n if (lang) {\r\n // xtra += \"/Lang (\" + lang +\")\\n\";\r\n }\r\n\r\n //renderingMode\r\n var renderingMode = -1;\r\n var parmRenderingMode =\r\n typeof options.renderingMode !== \"undefined\"\r\n ? options.renderingMode\r\n : options.stroke;\r\n var pageContext = scope.internal.getCurrentPageInfo().pageContext;\r\n\r\n switch (parmRenderingMode) {\r\n case 0:\r\n case false:\r\n case \"fill\":\r\n renderingMode = 0;\r\n break;\r\n case 1:\r\n case true:\r\n case \"stroke\":\r\n renderingMode = 1;\r\n break;\r\n case 2:\r\n case \"fillThenStroke\":\r\n renderingMode = 2;\r\n break;\r\n case 3:\r\n case \"invisible\":\r\n renderingMode = 3;\r\n break;\r\n case 4:\r\n case \"fillAndAddForClipping\":\r\n renderingMode = 4;\r\n break;\r\n case 5:\r\n case \"strokeAndAddPathForClipping\":\r\n renderingMode = 5;\r\n break;\r\n case 6:\r\n case \"fillThenStrokeAndAddToPathForClipping\":\r\n renderingMode = 6;\r\n break;\r\n case 7:\r\n case \"addToPathForClipping\":\r\n renderingMode = 7;\r\n break;\r\n }\r\n\r\n var usedRenderingMode =\r\n typeof pageContext.usedRenderingMode !== \"undefined\"\r\n ? pageContext.usedRenderingMode\r\n : -1;\r\n\r\n //if the coder wrote it explicitly to use a specific\r\n //renderingMode, then use it\r\n if (renderingMode !== -1) {\r\n xtra += renderingMode + \" Tr\\n\";\r\n //otherwise check if we used the rendering Mode already\r\n //if so then set the rendering Mode...\r\n } else if (usedRenderingMode !== -1) {\r\n xtra += \"0 Tr\\n\";\r\n }\r\n\r\n if (renderingMode !== -1) {\r\n pageContext.usedRenderingMode = renderingMode;\r\n }\r\n\r\n //align\r\n align = options.align || \"left\";\r\n var leading = activeFontSize * lineHeight;\r\n var pageWidth = scope.internal.pageSize.getWidth();\r\n var activeFont = fonts[activeFontKey];\r\n charSpace = options.charSpace || activeCharSpace;\r\n maxWidth = options.maxWidth || 0;\r\n\r\n var lineWidths;\r\n flags = Object.assign({ autoencode: true, noBOM: true }, options.flags);\r\n\r\n var wordSpacingPerLine = [];\r\n var findWidth = function(v) {\r\n return (\r\n (scope.getStringUnitWidth(v, {\r\n font: activeFont,\r\n charSpace: charSpace,\r\n fontSize: activeFontSize,\r\n doKerning: false\r\n }) *\r\n activeFontSize) /\r\n scaleFactor\r\n );\r\n };\r\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n da = transformTextToSpecialArray(text);\r\n var newY;\r\n if (align !== \"left\") {\r\n lineWidths = da.map(findWidth);\r\n }\r\n //The first line uses the \"main\" Td setting,\r\n //and the subsequent lines are offset by the\r\n //previous line's x coordinate.\r\n var prevWidth = 0;\r\n var newX;\r\n if (align === \"right\") {\r\n //The passed in x coordinate defines the\r\n //rightmost point of the text.\r\n x -= lineWidths[0];\r\n text = [];\r\n len = da.length;\r\n for (var i = 0; i < len; i++) {\r\n if (i === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale(prevWidth - lineWidths[i]);\r\n newY = -leading;\r\n }\r\n text.push([da[i], newX, newY]);\r\n prevWidth = lineWidths[i];\r\n }\r\n } else if (align === \"center\") {\r\n //The passed in x coordinate defines\r\n //the center point.\r\n x -= lineWidths[0] / 2;\r\n text = [];\r\n len = da.length;\r\n for (var j = 0; j < len; j++) {\r\n if (j === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale((prevWidth - lineWidths[j]) / 2);\r\n newY = -leading;\r\n }\r\n text.push([da[j], newX, newY]);\r\n prevWidth = lineWidths[j];\r\n }\r\n } else if (align === \"left\") {\r\n text = [];\r\n len = da.length;\r\n for (var h = 0; h < len; h++) {\r\n text.push(da[h]);\r\n }\r\n } else if (align === \"justify\" && activeFont.encoding === \"Identity-H\") {\r\n // when using unicode fonts, wordSpacePerLine does not apply\r\n text = [];\r\n len = da.length;\r\n maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n let backToStartX = 0;\r\n for (var l = 0; l < len; l++) {\r\n newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n newX = l === 0 ? getHorizontalCoordinate(x) : backToStartX;\r\n if (l < len - 1) {\r\n let spacing = scale(\r\n (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n );\r\n let words = da[l].split(\" \");\r\n text.push([words[0] + \" \", newX, newY]);\r\n backToStartX = 0; // distance to reset back to the left\r\n for (let i = 1; i < words.length; i++) {\r\n let shiftAmount =\r\n (findWidth(words[i - 1] + \" \" + words[i]) -\r\n findWidth(words[i])) *\r\n scaleFactor +\r\n spacing;\r\n if (i == words.length - 1) text.push([words[i], shiftAmount, 0]);\r\n else text.push([words[i] + \" \", shiftAmount, 0]);\r\n backToStartX -= shiftAmount;\r\n }\r\n } else {\r\n text.push([da[l], newX, newY]);\r\n }\r\n }\r\n text.push([\"\", backToStartX, 0]);\r\n } else if (align === \"justify\") {\r\n text = [];\r\n len = da.length;\r\n maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n for (var l = 0; l < len; l++) {\r\n newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n newX = l === 0 ? getHorizontalCoordinate(x) : 0;\r\n if (l < len - 1) {\r\n wordSpacingPerLine.push(\r\n hpf(\r\n scale(\r\n (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n )\r\n )\r\n );\r\n } else {\r\n wordSpacingPerLine.push(0);\r\n }\r\n text.push([da[l], newX, newY]);\r\n }\r\n } else {\r\n throw new Error(\r\n 'Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".'\r\n );\r\n }\r\n }\r\n\r\n //R2L\r\n var doReversing = typeof options.R2L === \"boolean\" ? options.R2L : R2L;\r\n if (doReversing === true) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [\r\n text\r\n .split(\"\")\r\n .reverse()\r\n .join(\"\"),\r\n posX,\r\n posY\r\n ];\r\n });\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"postProcessText\", payload);\r\n\r\n text = payload.text;\r\n isHex = payload.mutex.isHex || false;\r\n\r\n //Escaping\r\n var activeFontEncoding = fonts[activeFontKey].encoding;\r\n\r\n if (\r\n activeFontEncoding === \"WinAnsiEncoding\" ||\r\n activeFontEncoding === \"StandardEncoding\"\r\n ) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [ESC(text), posX, posY];\r\n });\r\n }\r\n\r\n da = transformTextToSpecialArray(text);\r\n\r\n text = [];\r\n var STRING = 0;\r\n var ARRAY = 1;\r\n var variant = Array.isArray(da[0]) ? ARRAY : STRING;\r\n var posX;\r\n var posY;\r\n var content;\r\n var wordSpacing = \"\";\r\n\r\n var generatePosition = function(\r\n parmPosX,\r\n parmPosY,\r\n parmTransformationMatrix\r\n ) {\r\n var position = \"\";\r\n if (parmTransformationMatrix instanceof Matrix) {\r\n // It is kind of more intuitive to apply a plain rotation around the text anchor set by x and y\r\n // but when the user supplies an arbitrary transformation matrix, the x and y offsets should be applied\r\n // in the coordinate system established by this matrix\r\n if (typeof options.angle === \"number\") {\r\n parmTransformationMatrix = matrixMult(\r\n parmTransformationMatrix,\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY)\r\n );\r\n } else {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, -1, 0, 0),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n position = parmTransformationMatrix.join(\" \") + \" Tm\\n\";\r\n } else {\r\n position = hpf(parmPosX) + \" \" + hpf(parmPosY) + \" Td\\n\";\r\n }\r\n return position;\r\n };\r\n\r\n for (var lineIndex = 0; lineIndex < da.length; lineIndex++) {\r\n wordSpacing = \"\";\r\n\r\n switch (variant) {\r\n case ARRAY:\r\n content =\r\n (isHex ? \"<\" : \"(\") + da[lineIndex][0] + (isHex ? \">\" : \")\");\r\n posX = parseFloat(da[lineIndex][1]);\r\n posY = parseFloat(da[lineIndex][2]);\r\n break;\r\n case STRING:\r\n content = (isHex ? \"<\" : \"(\") + da[lineIndex] + (isHex ? \">\" : \")\");\r\n posX = getHorizontalCoordinate(x);\r\n posY = getVerticalCoordinate(y);\r\n break;\r\n }\r\n\r\n if (\r\n typeof wordSpacingPerLine !== \"undefined\" &&\r\n typeof wordSpacingPerLine[lineIndex] !== \"undefined\"\r\n ) {\r\n wordSpacing = wordSpacingPerLine[lineIndex] + \" Tw\\n\";\r\n }\r\n\r\n if (lineIndex === 0) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n } else if (variant === STRING) {\r\n text.push(wordSpacing + content);\r\n } else if (variant === ARRAY) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n }\r\n }\r\n\r\n text = variant === STRING ? text.join(\" Tj\\nT* \") : text.join(\" Tj\\n\");\r\n text += \" Tj\\n\";\r\n\r\n var result = \"BT\\n/\";\r\n result += activeFontKey + \" \" + activeFontSize + \" Tf\\n\"; // font face, style, size\r\n result += hpf(activeFontSize * lineHeight) + \" TL\\n\"; // line spacing\r\n result += textColor + \"\\n\";\r\n result += xtra;\r\n result += text;\r\n result += \"ET\";\r\n\r\n out(result);\r\n usedFonts[activeFontKey] = true;\r\n return scope;\r\n };\r\n\r\n // PDF supports these path painting and clip path operators:\r\n //\r\n // S - stroke\r\n // s - close/stroke\r\n // f (F) - fill non-zero\r\n // f* - fill evenodd\r\n // B - fill stroke nonzero\r\n // B* - fill stroke evenodd\r\n // b - close fill stroke nonzero\r\n // b* - close fill stroke evenodd\r\n // n - nothing (consume path)\r\n // W - clip nonzero\r\n // W* - clip evenodd\r\n //\r\n // In order to keep the API small, we omit the close-and-fill/stroke operators and provide a separate close()\r\n // method.\r\n /**\r\n *\r\n * @name clip\r\n * @function\r\n * @instance\r\n * @param {string} rule Only possible value is 'evenodd'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description All .clip() after calling drawing ops with a style argument of null.\r\n */\r\n var clip = (API.__private__.clip = API.clip = function(rule) {\r\n // Call .clip() after calling drawing ops with a style argument of null\r\n // W is the PDF clipping op\r\n if (\"evenodd\" === rule) {\r\n out(\"W*\");\r\n } else {\r\n out(\"W\");\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * @name clipEvenOdd\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description Modify the current clip path by intersecting it with the current path using the even-odd rule. Note\r\n * that this will NOT consume the current path. In order to only use this path for clipping call\r\n * {@link API.discardPath} afterwards.\r\n */\r\n API.clipEvenOdd = function() {\r\n return clip(\"evenodd\");\r\n };\r\n\r\n /**\r\n * Consumes the current path without any effect. Mainly used in combination with {@link clip} or\r\n * {@link clipEvenOdd}. The PDF \"n\" operator.\r\n * @name discardPath\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.discardPath = API.discardPath = function() {\r\n out(\"n\");\r\n return this;\r\n };\r\n\r\n var isValidStyle = (API.__private__.isValidStyle = function(style) {\r\n var validStyleVariants = [\r\n undefined,\r\n null,\r\n \"S\",\r\n \"D\",\r\n \"F\",\r\n \"DF\",\r\n \"FD\",\r\n \"f\",\r\n \"f*\",\r\n \"B\",\r\n \"B*\",\r\n \"n\"\r\n ];\r\n var result = false;\r\n if (validStyleVariants.indexOf(style) !== -1) {\r\n result = true;\r\n }\r\n return result;\r\n });\r\n\r\n API.__private__.setDefaultPathOperation = API.setDefaultPathOperation = function(\r\n operator\r\n ) {\r\n if (isValidStyle(operator)) {\r\n defaultPathOperation = operator;\r\n }\r\n return this;\r\n };\r\n\r\n var getStyle = (API.__private__.getStyle = API.getStyle = function(style) {\r\n // see path-painting operators in PDF spec\r\n var op = defaultPathOperation; // stroke\r\n\r\n switch (style) {\r\n case \"D\":\r\n case \"S\":\r\n op = \"S\"; // stroke\r\n break;\r\n case \"F\":\r\n op = \"f\"; // fill\r\n break;\r\n case \"FD\":\r\n case \"DF\":\r\n op = \"B\";\r\n break;\r\n case \"f\":\r\n case \"f*\":\r\n case \"B\":\r\n case \"B*\":\r\n /*\r\n Allow direct use of these PDF path-painting operators:\r\n - f fill using nonzero winding number rule\r\n - f* fill using even-odd rule\r\n - B fill then stroke with fill using non-zero winding number rule\r\n - B* fill then stroke with fill using even-odd rule\r\n */\r\n op = style;\r\n break;\r\n }\r\n return op;\r\n });\r\n\r\n /**\r\n * Close the current path. The PDF \"h\" operator.\r\n * @name close\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n var close = (API.close = function() {\r\n out(\"h\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Stroke the path. The PDF \"S\" operator.\r\n * @name stroke\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.stroke = function() {\r\n out(\"S\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the nonzero winding number rule. If a pattern is provided, the path will be filled\r\n * with this pattern, otherwise with the current fill color. Equivalent to the PDF \"f\" operator.\r\n * @name fill\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fill = function(pattern) {\r\n fillWithOptionalPattern(\"f\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the even-odd rule. The PDF f* operator.\r\n * @see API.fill\r\n * @name fillEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"f*\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the nonzero winding number rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStroke\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStroke = function(pattern) {\r\n fillWithOptionalPattern(\"B\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the even-odd rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStrokeEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be fill-stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStrokeEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"B*\", pattern);\r\n return this;\r\n };\r\n\r\n var fillWithOptionalPattern = function(style, pattern) {\r\n if (typeof pattern === \"object\") {\r\n fillWithPattern(pattern, style);\r\n } else {\r\n out(style);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n if (\r\n style === null ||\r\n (apiMode === ApiMode.ADVANCED && style === undefined)\r\n ) {\r\n return;\r\n }\r\n\r\n style = getStyle(style);\r\n\r\n // stroking / filling / both the path\r\n out(style);\r\n };\r\n\r\n function cloneTilingPattern(patternKey, boundingBox, xStep, yStep, matrix) {\r\n var clone = new TilingPattern(\r\n boundingBox || this.boundingBox,\r\n xStep || this.xStep,\r\n yStep || this.yStep,\r\n this.gState,\r\n matrix || this.matrix\r\n );\r\n clone.stream = this.stream;\r\n var key = patternKey + \"$$\" + this.cloneIndex++ + \"$$\";\r\n addPattern(key, clone);\r\n return clone;\r\n }\r\n\r\n var fillWithPattern = function(patternData, style) {\r\n var patternId = patternMap[patternData.key];\r\n var pattern = patterns[patternId];\r\n\r\n if (pattern instanceof ShadingPattern) {\r\n out(\"q\");\r\n\r\n out(clipRuleFromStyle(style));\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n out(patternData.matrix.toString() + \" cm\");\r\n out(\"/\" + patternId + \" sh\");\r\n out(\"Q\");\r\n } else if (pattern instanceof TilingPattern) {\r\n // pdf draws patterns starting at the bottom left corner and they are not affected by the global transformation,\r\n // so we must flip them\r\n var matrix = new Matrix(1, 0, 0, -1, 0, getPageHeight());\r\n\r\n if (patternData.matrix) {\r\n matrix = matrix.multiply(patternData.matrix || identityMatrix);\r\n // we cannot apply a matrix to the pattern on use so we must abuse the pattern matrix and create new instances\r\n // for each use\r\n patternId = cloneTilingPattern.call(\r\n pattern,\r\n patternData.key,\r\n patternData.boundingBox,\r\n patternData.xStep,\r\n patternData.yStep,\r\n matrix\r\n ).id;\r\n }\r\n\r\n out(\"q\");\r\n out(\"/Pattern cs\");\r\n out(\"/\" + patternId + \" scn\");\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n\r\n out(style);\r\n out(\"Q\");\r\n }\r\n };\r\n\r\n var clipRuleFromStyle = function(style) {\r\n switch (style) {\r\n case \"f\":\r\n case \"F\":\r\n return \"W n\";\r\n case \"f*\":\r\n return \"W* n\";\r\n case \"B\":\r\n return \"W S\";\r\n case \"B*\":\r\n return \"W* S\";\r\n\r\n // these two are for compatibility reasons (in the past, calling any primitive method with a shading pattern\r\n // and \"n\"/\"S\" as style would still fill/fill and stroke the path)\r\n case \"S\":\r\n return \"W S\";\r\n case \"n\":\r\n return \"W n\";\r\n }\r\n };\r\n\r\n /**\r\n * Begin a new subpath by moving the current point to coordinates (x, y). The PDF \"m\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @name moveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var moveTo = (API.moveTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" m\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a straight line segment from the current point to the point (x, y). The PDF \"l\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @memberof jsPDF#\r\n * @name lineTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var lineTo = (API.lineTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" l\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a cubic Bézier curve to the current path. The curve shall extend from the current point to the point\r\n * (x3, y3), using (x1, y1) and (x2, y2) as Bézier control points. The new current point shall be (x3, x3).\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {number} x3\r\n * @param {number} y3\r\n * @memberof jsPDF#\r\n * @name curveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var curveTo = (API.curveTo = function(x1, y1, x2, y2, x3, y3) {\r\n out(\r\n [\r\n hpf(scale(x1)),\r\n hpf(transformScaleY(y1)),\r\n hpf(scale(x2)),\r\n hpf(transformScaleY(y2)),\r\n hpf(scale(x3)),\r\n hpf(transformScaleY(y3)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n return this;\r\n });\r\n\r\n /**\r\n * Draw a line on the current page.\r\n *\r\n * @name line\r\n * @function\r\n * @instance\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {string} style A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument. default: 'S'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.line = API.line = function(x1, y1, x2, y2, style) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.line\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1], style || \"S\");\r\n } else {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1]).stroke();\r\n }\r\n };\r\n\r\n /**\r\n * @typedef {Object} PatternData\r\n * {Matrix|undefined} matrix\r\n * {Number|undefined} xStep\r\n * {Number|undefined} yStep\r\n * {Array.|undefined} boundingBox\r\n */\r\n\r\n /**\r\n * Adds series of curves (straight lines or cubic bezier curves) to canvas, starting at `x`, `y` coordinates.\r\n * All data points in `lines` are relative to last line origin.\r\n * `x`, `y` become x1,y1 for first line / curve in the set.\r\n * For lines you only need to specify [x2, y2] - (ending point) vector against x1, y1 starting point.\r\n * For bezier curves you need to specify [x2,y2,x3,y3,x4,y4] - vectors to control points 1, 2, ending point. All vectors are against the start of the curve - x1,y1.\r\n *\r\n * @example .lines([[2,2],[-2,2],[1,1,2,2,3,3],[2,1]], 212,110, [1,1], 'F', false) // line, line, bezier curve, line\r\n * @param {Array} lines Array of *vector* shifts as pairs (lines) or sextets (cubic bezier curves).\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} scale (Defaults to [1.0,1.0]) x,y Scaling factor for all vectors. Elements can be any floating number Sub-one makes drawing smaller. Over-one grows the drawing. Negative flips the direction.\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @param {Boolean=} closed If true, the path is closed with a straight line from the end of the last curve to the starting point.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name lines\r\n */\r\n API.__private__.lines = API.lines = function(\r\n lines,\r\n x,\r\n y,\r\n scale,\r\n style,\r\n closed\r\n ) {\r\n var scalex, scaley, i, l, leg, x2, y2, x3, y3, x4, y4, tmp;\r\n\r\n // Pre-August-2012 the order of arguments was function(x, y, lines, scale, style)\r\n // in effort to make all calls have similar signature like\r\n // function(content, coordinateX, coordinateY , miscellaneous)\r\n // this method had its args flipped.\r\n // code below allows backward compatibility with old arg order.\r\n if (typeof lines === \"number\") {\r\n tmp = y;\r\n y = x;\r\n x = lines;\r\n lines = tmp;\r\n }\r\n\r\n scale = scale || [1, 1];\r\n closed = closed || false;\r\n\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n !Array.isArray(lines) ||\r\n !Array.isArray(scale) ||\r\n !isValidStyle(style) ||\r\n typeof closed !== \"boolean\"\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.lines\");\r\n }\r\n\r\n // starting point\r\n moveTo(x, y);\r\n\r\n scalex = scale[0];\r\n scaley = scale[1];\r\n l = lines.length;\r\n //, x2, y2 // bezier only. In page default measurement \"units\", *after* scaling\r\n //, x3, y3 // bezier only. In page default measurement \"units\", *after* scaling\r\n // ending point for all, lines and bezier. . In page default measurement \"units\", *after* scaling\r\n x4 = x; // last / ending point = starting point for first item.\r\n y4 = y; // last / ending point = starting point for first item.\r\n\r\n for (i = 0; i < l; i++) {\r\n leg = lines[i];\r\n if (leg.length === 2) {\r\n // simple line\r\n x4 = leg[0] * scalex + x4; // here last x4 was prior ending point\r\n y4 = leg[1] * scaley + y4; // here last y4 was prior ending point\r\n lineTo(x4, y4);\r\n } else {\r\n // bezier curve\r\n x2 = leg[0] * scalex + x4; // here last x4 is prior ending point\r\n y2 = leg[1] * scaley + y4; // here last y4 is prior ending point\r\n x3 = leg[2] * scalex + x4; // here last x4 is prior ending point\r\n y3 = leg[3] * scaley + y4; // here last y4 is prior ending point\r\n x4 = leg[4] * scalex + x4; // here last x4 was prior ending point\r\n y4 = leg[5] * scaley + y4; // here last y4 was prior ending point\r\n curveTo(x2, y2, x3, y3, x4, y4);\r\n }\r\n }\r\n\r\n if (closed) {\r\n close();\r\n }\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Similar to {@link API.lines} but all coordinates are interpreted as absolute coordinates instead of relative.\r\n * @param {Array} lines An array of {op: operator, c: coordinates} object, where op is one of \"m\" (move to), \"l\" (line to)\r\n * \"c\" (cubic bezier curve) and \"h\" (close (sub)path)). c is an array of coordinates. \"m\" and \"l\" expect two, \"c\"\r\n * six and \"h\" an empty array (or undefined).\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name path\r\n */\r\n API.path = function(lines) {\r\n for (var i = 0; i < lines.length; i++) {\r\n var leg = lines[i];\r\n var coords = leg.c;\r\n switch (leg.op) {\r\n case \"m\":\r\n moveTo(coords[0], coords[1]);\r\n break;\r\n case \"l\":\r\n lineTo(coords[0], coords[1]);\r\n break;\r\n case \"c\":\r\n curveTo.apply(this, coords);\r\n break;\r\n case \"h\":\r\n close();\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a rectangle to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} w Width (in units declared at inception of PDF document)\r\n * @param {number} h Height (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name rect\r\n */\r\n API.__private__.rect = API.rect = function(x, y, w, h, style) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h) || !isValidStyle(style)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.rect\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n h = -h;\r\n }\r\n\r\n out(\r\n [\r\n hpf(scale(x)),\r\n hpf(transformScaleY(y)),\r\n hpf(scale(w)),\r\n hpf(scale(h)),\r\n \"re\"\r\n ].join(\" \")\r\n );\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a triangle to PDF.\r\n *\r\n * @param {number} x1 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y1 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} x2 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y2 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} x3 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y3 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name triangle\r\n */\r\n API.__private__.triangle = API.triangle = function(\r\n x1,\r\n y1,\r\n x2,\r\n y2,\r\n x3,\r\n y3,\r\n style\r\n ) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n isNaN(x3) ||\r\n isNaN(y3) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.triangle\");\r\n }\r\n this.lines(\r\n [\r\n [x2 - x1, y2 - y1], // vector to point 2\r\n [x3 - x2, y3 - y2], // vector to point 3\r\n [x1 - x3, y1 - y3] // closing vector back to point 1\r\n ],\r\n x1,\r\n y1, // start of path\r\n [1, 1],\r\n style,\r\n true\r\n );\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a rectangle with rounded corners to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} w Width (in units declared at inception of PDF document)\r\n * @param {number} h Height (in units declared at inception of PDF document)\r\n * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name roundedRect\r\n */\r\n API.__private__.roundedRect = API.roundedRect = function(\r\n x,\r\n y,\r\n w,\r\n h,\r\n rx,\r\n ry,\r\n style\r\n ) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(w) ||\r\n isNaN(h) ||\r\n isNaN(rx) ||\r\n isNaN(ry) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");\r\n }\r\n var MyArc = (4 / 3) * (Math.SQRT2 - 1);\r\n\r\n rx = Math.min(rx, w * 0.5);\r\n ry = Math.min(ry, h * 0.5);\r\n\r\n this.lines(\r\n [\r\n [w - 2 * rx, 0],\r\n [rx * MyArc, 0, rx, ry - ry * MyArc, rx, ry],\r\n [0, h - 2 * ry],\r\n [0, ry * MyArc, -(rx * MyArc), ry, -rx, ry],\r\n [-w + 2 * rx, 0],\r\n [-(rx * MyArc), 0, -rx, -(ry * MyArc), -rx, -ry],\r\n [0, -h + 2 * ry],\r\n [0, -(ry * MyArc), rx * MyArc, -ry, rx, -ry]\r\n ],\r\n x + rx,\r\n y, // start of path\r\n [1, 1],\r\n style,\r\n true\r\n );\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds an ellipse to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name ellipse\r\n */\r\n API.__private__.ellipse = API.ellipse = function(x, y, rx, ry, style) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(rx) ||\r\n isNaN(ry) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");\r\n }\r\n var lx = (4 / 3) * (Math.SQRT2 - 1) * rx,\r\n ly = (4 / 3) * (Math.SQRT2 - 1) * ry;\r\n\r\n moveTo(x + rx, y);\r\n curveTo(x + rx, y - ly, x + lx, y - ry, x, y - ry);\r\n curveTo(x - lx, y - ry, x - rx, y - ly, x - rx, y);\r\n curveTo(x - rx, y + ly, x - lx, y + ry, x, y + ry);\r\n curveTo(x + lx, y + ry, x + rx, y + ly, x + rx, y);\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds an circle to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} r Radius (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name circle\r\n */\r\n API.__private__.circle = API.circle = function(x, y, r, style) {\r\n if (isNaN(x) || isNaN(y) || isNaN(r) || !isValidStyle(style)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.circle\");\r\n }\r\n return this.ellipse(x, y, r, r, style);\r\n };\r\n\r\n /**\r\n * Sets text font face, variant for upcoming text elements.\r\n * See output of jsPDF.getFontList() for possible font names, styles.\r\n *\r\n * @param {string} fontName Font name or family. Example: \"times\".\r\n * @param {string} fontStyle Font style or variant. Example: \"italic\".\r\n * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFont\r\n */\r\n API.setFont = function(fontName, fontStyle, fontWeight) {\r\n if (fontWeight) {\r\n fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n }\r\n activeFontKey = getFont(fontName, fontStyle, {\r\n disableWarning: false\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets text font face, variant for upcoming text elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {Object}\r\n * @memberof jsPDF#\r\n * @name getFont\r\n */\r\n var getFontEntry = (API.__private__.getFont = API.getFont = function() {\r\n return fonts[getFont.apply(API, arguments)];\r\n });\r\n\r\n /**\r\n * Returns an object - a tree of fontName to fontStyle relationships available to\r\n * active PDF document.\r\n *\r\n * @public\r\n * @function\r\n * @instance\r\n * @returns {Object} Like {'times':['normal', 'italic', ... ], 'arial':['normal', 'bold', ... ], ... }\r\n * @memberof jsPDF#\r\n * @name getFontList\r\n */\r\n API.__private__.getFontList = API.getFontList = function() {\r\n var list = {},\r\n fontName,\r\n fontStyle;\r\n\r\n for (fontName in fontmap) {\r\n if (fontmap.hasOwnProperty(fontName)) {\r\n list[fontName] = [];\r\n for (fontStyle in fontmap[fontName]) {\r\n if (fontmap[fontName].hasOwnProperty(fontStyle)) {\r\n list[fontName].push(fontStyle);\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n\r\n /**\r\n * Add a custom font to the current instance.\r\n *\r\n * @param {string} postScriptName PDF specification full name for the font.\r\n * @param {string} id PDF-document-instance-specific label assinged to the font.\r\n * @param {string} fontStyle Style of the Font.\r\n * @param {number | string} fontWeight Weight of the Font.\r\n * @param {Object} encoding Encoding_name-to-Font_metrics_object mapping.\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @name addFont\r\n * @returns {string} fontId\r\n */\r\n API.addFont = function(\r\n postScriptName,\r\n fontName,\r\n fontStyle,\r\n fontWeight,\r\n encoding\r\n ) {\r\n var encodingOptions = [\r\n \"StandardEncoding\",\r\n \"MacRomanEncoding\",\r\n \"Identity-H\",\r\n \"WinAnsiEncoding\"\r\n ];\r\n if (arguments[3] && encodingOptions.indexOf(arguments[3]) !== -1) {\r\n //IE 11 fix\r\n encoding = arguments[3];\r\n } else if (arguments[3] && encodingOptions.indexOf(arguments[3]) == -1) {\r\n fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n }\r\n encoding = encoding || \"Identity-H\";\r\n return addFont.call(this, postScriptName, fontName, fontStyle, encoding);\r\n };\r\n\r\n var lineWidth = options.lineWidth || 0.200025; // 2mm\r\n /**\r\n * Gets the line width, default: 0.200025.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} lineWidth\r\n * @memberof jsPDF#\r\n * @name getLineWidth\r\n */\r\n var getLineWidth = (API.__private__.getLineWidth = API.getLineWidth = function() {\r\n return lineWidth;\r\n });\r\n\r\n /**\r\n * Sets line width for upcoming lines.\r\n *\r\n * @param {number} width Line width (in units declared at inception of PDF document).\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineWidth\r\n */\r\n var setLineWidth = (API.__private__.setLineWidth = API.setLineWidth = function(\r\n width\r\n ) {\r\n lineWidth = width;\r\n out(hpf(scale(width)) + \" w\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Sets the dash pattern for upcoming lines.\r\n *\r\n * To reset the settings simply call the method without any parameters.\r\n * @param {Array} dashArray An array containing 0-2 numbers. The first number sets the length of the\r\n * dashes, the second number the length of the gaps. If the second number is missing, the gaps are considered\r\n * to be as long as the dashes. An empty array means solid, unbroken lines.\r\n * @param {number} dashPhase The phase lines start with.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineDashPattern\r\n */\r\n API.__private__.setLineDash = jsPDF.API.setLineDash = jsPDF.API.setLineDashPattern = function(\r\n dashArray,\r\n dashPhase\r\n ) {\r\n dashArray = dashArray || [];\r\n dashPhase = dashPhase || 0;\r\n\r\n if (isNaN(dashPhase) || !Array.isArray(dashArray)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");\r\n }\r\n\r\n dashArray = dashArray\r\n .map(function(x) {\r\n return hpf(scale(x));\r\n })\r\n .join(\" \");\r\n dashPhase = hpf(scale(dashPhase));\r\n\r\n out(\"[\" + dashArray + \"] \" + dashPhase + \" d\");\r\n return this;\r\n };\r\n\r\n var lineHeightFactor;\r\n\r\n var getLineHeight = (API.__private__.getLineHeight = API.getLineHeight = function() {\r\n return activeFontSize * lineHeightFactor;\r\n });\r\n\r\n API.__private__.getLineHeight = API.getLineHeight = function() {\r\n return activeFontSize * lineHeightFactor;\r\n };\r\n\r\n /**\r\n * Sets the LineHeightFactor of proportion.\r\n *\r\n * @param {number} value LineHeightFactor value. Default: 1.15.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineHeightFactor\r\n */\r\n var setLineHeightFactor = (API.__private__.setLineHeightFactor = API.setLineHeightFactor = function(\r\n value\r\n ) {\r\n value = value || 1.15;\r\n if (typeof value === \"number\") {\r\n lineHeightFactor = value;\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * Gets the LineHeightFactor, default: 1.15.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} lineHeightFactor\r\n * @memberof jsPDF#\r\n * @name getLineHeightFactor\r\n */\r\n var getLineHeightFactor = (API.__private__.getLineHeightFactor = API.getLineHeightFactor = function() {\r\n return lineHeightFactor;\r\n });\r\n\r\n setLineHeightFactor(options.lineHeight);\r\n\r\n var getHorizontalCoordinate = (API.__private__.getHorizontalCoordinate = function(\r\n value\r\n ) {\r\n return scale(value);\r\n });\r\n\r\n var getVerticalCoordinate = (API.__private__.getVerticalCoordinate = function(\r\n value\r\n ) {\r\n if (apiMode === ApiMode.ADVANCED) {\r\n return value;\r\n } else {\r\n var pageHeight =\r\n pagesContext[currentPage].mediaBox.topRightY -\r\n pagesContext[currentPage].mediaBox.bottomLeftY;\r\n return pageHeight - scale(value);\r\n }\r\n });\r\n\r\n var getHorizontalCoordinateString = (API.__private__.getHorizontalCoordinateString = API.getHorizontalCoordinateString = function(\r\n value\r\n ) {\r\n return hpf(getHorizontalCoordinate(value));\r\n });\r\n\r\n var getVerticalCoordinateString = (API.__private__.getVerticalCoordinateString = API.getVerticalCoordinateString = function(\r\n value\r\n ) {\r\n return hpf(getVerticalCoordinate(value));\r\n });\r\n\r\n var strokeColor = options.strokeColor || \"0 G\";\r\n\r\n /**\r\n * Gets the stroke color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getDrawColor\r\n */\r\n API.__private__.getStrokeColor = API.getDrawColor = function() {\r\n return decodeColorString(strokeColor);\r\n };\r\n\r\n /**\r\n * Sets the stroke color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setDrawColor\r\n */\r\n API.__private__.setStrokeColor = API.setDrawColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"draw\",\r\n precision: 2\r\n };\r\n\r\n strokeColor = encodeColorString(options);\r\n out(strokeColor);\r\n return this;\r\n };\r\n\r\n var fillColor = options.fillColor || \"0 g\";\r\n\r\n /**\r\n * Gets the fill color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getFillColor\r\n */\r\n API.__private__.getFillColor = API.getFillColor = function() {\r\n return decodeColorString(fillColor);\r\n };\r\n\r\n /**\r\n * Sets the fill color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFillColor\r\n */\r\n API.__private__.setFillColor = API.setFillColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"fill\",\r\n precision: 2\r\n };\r\n\r\n fillColor = encodeColorString(options);\r\n out(fillColor);\r\n return this;\r\n };\r\n\r\n var textColor = options.textColor || \"0 g\";\r\n /**\r\n * Gets the text color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getTextColor\r\n */\r\n var getTextColor = (API.__private__.getTextColor = API.getTextColor = function() {\r\n return decodeColorString(textColor);\r\n });\r\n /**\r\n * Sets the text color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setTextColor\r\n */\r\n API.__private__.setTextColor = API.setTextColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"text\",\r\n precision: 3\r\n };\r\n textColor = encodeColorString(options);\r\n\r\n return this;\r\n };\r\n\r\n var activeCharSpace = options.charSpace;\r\n\r\n /**\r\n * Get global value of CharSpace.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} charSpace\r\n * @memberof jsPDF#\r\n * @name getCharSpace\r\n */\r\n var getCharSpace = (API.__private__.getCharSpace = API.getCharSpace = function() {\r\n return parseFloat(activeCharSpace || 0);\r\n });\r\n\r\n /**\r\n * Set global value of CharSpace.\r\n *\r\n * @param {number} charSpace\r\n * @function\r\n * @instance\r\n * @returns {jsPDF} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name setCharSpace\r\n */\r\n API.__private__.setCharSpace = API.setCharSpace = function(charSpace) {\r\n if (isNaN(charSpace)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");\r\n }\r\n activeCharSpace = charSpace;\r\n return this;\r\n };\r\n\r\n var lineCapID = 0;\r\n /**\r\n * Is an Object providing a mapping from human-readable to\r\n * integer flag values designating the varieties of line cap\r\n * and join styles.\r\n *\r\n * @memberof jsPDF#\r\n * @name CapJoinStyles\r\n */\r\n API.CapJoinStyles = {\r\n 0: 0,\r\n butt: 0,\r\n but: 0,\r\n miter: 0,\r\n 1: 1,\r\n round: 1,\r\n rounded: 1,\r\n circle: 1,\r\n 2: 2,\r\n projecting: 2,\r\n project: 2,\r\n square: 2,\r\n bevel: 2\r\n };\r\n\r\n /**\r\n * Sets the line cap styles.\r\n * See {jsPDF.CapJoinStyles} for variants.\r\n *\r\n * @param {String|Number} style A string or number identifying the type of line cap.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineCap\r\n */\r\n API.__private__.setLineCap = API.setLineCap = function(style) {\r\n var id = API.CapJoinStyles[style];\r\n if (id === undefined) {\r\n throw new Error(\r\n \"Line cap style of '\" +\r\n style +\r\n \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n );\r\n }\r\n lineCapID = id;\r\n out(id + \" J\");\r\n\r\n return this;\r\n };\r\n\r\n var lineJoinID = 0;\r\n /**\r\n * Sets the line join styles.\r\n * See {jsPDF.CapJoinStyles} for variants.\r\n *\r\n * @param {String|Number} style A string or number identifying the type of line join.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineJoin\r\n */\r\n API.__private__.setLineJoin = API.setLineJoin = function(style) {\r\n var id = API.CapJoinStyles[style];\r\n if (id === undefined) {\r\n throw new Error(\r\n \"Line join style of '\" +\r\n style +\r\n \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n );\r\n }\r\n lineJoinID = id;\r\n out(id + \" j\");\r\n\r\n return this;\r\n };\r\n\r\n var miterLimit;\r\n /**\r\n * Sets the miterLimit property, which effects the maximum miter length.\r\n *\r\n * @param {number} length The length of the miter\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineMiterLimit\r\n */\r\n API.__private__.setLineMiterLimit = API.__private__.setMiterLimit = API.setLineMiterLimit = API.setMiterLimit = function(\r\n length\r\n ) {\r\n length = length || 0;\r\n if (isNaN(length)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.setLineMiterLimit\");\r\n }\r\n out(hpf(scale(length)) + \" M\");\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * An object representing a pdf graphics state.\r\n * @class GState\r\n */\r\n\r\n /**\r\n *\r\n * @param parameters A parameter object that contains all properties this graphics state wants to set.\r\n * Supported are: opacity, stroke-opacity\r\n * @constructor\r\n */\r\n API.GState = GState;\r\n\r\n /**\r\n * Sets a either previously added {@link GState} (via {@link addGState}) or a new {@link GState}.\r\n * @param {String|GState} gState If type is string, a previously added GState is used, if type is GState\r\n * it will be added before use.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setGState\r\n */\r\n API.setGState = function(gState) {\r\n if (typeof gState === \"string\") {\r\n gState = gStates[gStatesMap[gState]];\r\n } else {\r\n gState = addGState(null, gState);\r\n }\r\n\r\n if (!gState.equals(activeGState)) {\r\n out(\"/\" + gState.id + \" gs\");\r\n activeGState = gState;\r\n }\r\n };\r\n\r\n /**\r\n * Adds a new Graphics State. Duplicates are automatically eliminated.\r\n * @param {String} key Might also be null, if no later reference to this gState is needed\r\n * @param {Object} gState The gState object\r\n */\r\n var addGState = function(key, gState) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (key && gStatesMap[key]) return;\r\n var duplicate = false;\r\n for (var s in gStates) {\r\n if (gStates.hasOwnProperty(s)) {\r\n if (gStates[s].equals(gState)) {\r\n duplicate = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (duplicate) {\r\n gState = gStates[s];\r\n } else {\r\n var gStateKey = \"GS\" + (Object.keys(gStates).length + 1).toString(10);\r\n gStates[gStateKey] = gState;\r\n gState.id = gStateKey;\r\n }\r\n\r\n // several user keys may point to the same GState object\r\n key && (gStatesMap[key] = gState.id);\r\n\r\n events.publish(\"addGState\", gState);\r\n\r\n return gState;\r\n };\r\n\r\n /**\r\n * Adds a new {@link GState} for later use. See {@link setGState}.\r\n * @param {String} key\r\n * @param {GState} gState\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name addGState\r\n */\r\n API.addGState = function(key, gState) {\r\n addGState(key, gState);\r\n return this;\r\n };\r\n\r\n /**\r\n * Saves the current graphics state (\"pushes it on the stack\"). It can be restored by {@link restoreGraphicsState}\r\n * later. Here, the general pdf graphics state is meant, also including the current transformation matrix,\r\n * fill and stroke colors etc.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name saveGraphicsState\r\n */\r\n API.saveGraphicsState = function() {\r\n out(\"q\");\r\n // as we cannot set font key and size independently we must keep track of both\r\n fontStateStack.push({\r\n key: activeFontKey,\r\n size: activeFontSize,\r\n color: textColor\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Restores a previously saved graphics state saved by {@link saveGraphicsState} (\"pops the stack\").\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name restoreGraphicsState\r\n */\r\n API.restoreGraphicsState = function() {\r\n out(\"Q\");\r\n\r\n // restore previous font state\r\n var fontState = fontStateStack.pop();\r\n activeFontKey = fontState.key;\r\n activeFontSize = fontState.size;\r\n textColor = fontState.color;\r\n\r\n activeGState = null;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Appends this matrix to the left of all previously applied matrices.\r\n *\r\n * @param {Matrix} matrix\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setCurrentTransformationMatrix\r\n */\r\n API.setCurrentTransformationMatrix = function(matrix) {\r\n out(matrix.toString() + \" cm\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Inserts a debug comment into the generated pdf.\r\n * @function\r\n * @instance\r\n * @param {String} text\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name comment\r\n */\r\n API.comment = function(text) {\r\n out(\"#\" + text);\r\n return this;\r\n };\r\n\r\n /**\r\n * Point\r\n */\r\n var Point = function(x, y) {\r\n var _x = x || 0;\r\n Object.defineProperty(this, \"x\", {\r\n enumerable: true,\r\n get: function() {\r\n return _x;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _x = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _y = y || 0;\r\n Object.defineProperty(this, \"y\", {\r\n enumerable: true,\r\n get: function() {\r\n return _y;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _y = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _type = \"pt\";\r\n Object.defineProperty(this, \"type\", {\r\n enumerable: true,\r\n get: function() {\r\n return _type;\r\n },\r\n set: function(value) {\r\n _type = value.toString();\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Rectangle\r\n */\r\n var Rectangle = function(x, y, w, h) {\r\n Point.call(this, x, y);\r\n this.type = \"rect\";\r\n\r\n var _w = w || 0;\r\n Object.defineProperty(this, \"w\", {\r\n enumerable: true,\r\n get: function() {\r\n return _w;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _w = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _h = h || 0;\r\n Object.defineProperty(this, \"h\", {\r\n enumerable: true,\r\n get: function() {\r\n return _h;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _h = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * FormObject/RenderTarget\r\n */\r\n\r\n var RenderTarget = function() {\r\n this.page = page;\r\n this.currentPage = currentPage;\r\n this.pages = pages.slice(0);\r\n this.pagesContext = pagesContext.slice(0);\r\n this.x = pageX;\r\n this.y = pageY;\r\n this.matrix = pageMatrix;\r\n this.width = getPageWidth(currentPage);\r\n this.height = getPageHeight(currentPage);\r\n this.outputDestination = outputDestination;\r\n\r\n this.id = \"\"; // set by endFormObject()\r\n this.objectNumber = -1; // will be set by putXObject()\r\n };\r\n\r\n RenderTarget.prototype.restore = function() {\r\n page = this.page;\r\n currentPage = this.currentPage;\r\n pagesContext = this.pagesContext;\r\n pages = this.pages;\r\n pageX = this.x;\r\n pageY = this.y;\r\n pageMatrix = this.matrix;\r\n setPageWidth(currentPage, this.width);\r\n setPageHeight(currentPage, this.height);\r\n outputDestination = this.outputDestination;\r\n };\r\n\r\n var beginNewRenderTarget = function(x, y, width, height, matrix) {\r\n // save current state\r\n renderTargetStack.push(new RenderTarget());\r\n\r\n // clear pages\r\n page = currentPage = 0;\r\n pages = [];\r\n pageX = x;\r\n pageY = y;\r\n\r\n pageMatrix = matrix;\r\n\r\n beginPage([width, height]);\r\n };\r\n\r\n var endFormObject = function(key) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (renderTargetMap[key]) {\r\n renderTargetStack.pop().restore();\r\n return;\r\n }\r\n\r\n // save the created xObject\r\n var newXObject = new RenderTarget();\r\n\r\n var xObjectId = \"Xo\" + (Object.keys(renderTargets).length + 1).toString(10);\r\n newXObject.id = xObjectId;\r\n\r\n renderTargetMap[key] = xObjectId;\r\n renderTargets[xObjectId] = newXObject;\r\n\r\n events.publish(\"addFormObject\", newXObject);\r\n\r\n // restore state from stack\r\n renderTargetStack.pop().restore();\r\n };\r\n\r\n /**\r\n * Starts a new pdf form object, which means that all consequent draw calls target a new independent object\r\n * until {@link endFormObject} is called. The created object can be referenced and drawn later using\r\n * {@link doFormObject}. Nested form objects are possible.\r\n * x, y, width, height set the bounding box that is used to clip the content.\r\n *\r\n * @param {number} x\r\n * @param {number} y\r\n * @param {number} width\r\n * @param {number} height\r\n * @param {Matrix} matrix The matrix that will be applied to convert the form objects coordinate system to\r\n * the parent's.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name beginFormObject\r\n */\r\n API.beginFormObject = function(x, y, width, height, matrix) {\r\n // The user can set the output target to a new form object. Nested form objects are possible.\r\n // Currently, they use the resource dictionary of the surrounding stream. This should be changed, as\r\n // the PDF-Spec states:\r\n // \"In PDF 1.2 and later versions, form XObjects may be independent of the content streams in which\r\n // they appear, and this is strongly recommended although not requiredIn PDF 1.2 and later versions,\r\n // form XObjects may be independent of the content streams in which they appear, and this is strongly\r\n // recommended although not required\"\r\n beginNewRenderTarget(x, y, width, height, matrix);\r\n return this;\r\n };\r\n\r\n /**\r\n * Completes and saves the form object.\r\n * @param {String} key The key by which this form object can be referenced.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name endFormObject\r\n */\r\n API.endFormObject = function(key) {\r\n endFormObject(key);\r\n return this;\r\n };\r\n\r\n /**\r\n * Draws the specified form object by referencing to the respective pdf XObject created with\r\n * {@link API.beginFormObject} and {@link endFormObject}.\r\n * The location is determined by matrix.\r\n *\r\n * @param {String} key The key to the form object.\r\n * @param {Matrix} matrix The matrix applied before drawing the form object.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name doFormObject\r\n */\r\n API.doFormObject = function(key, matrix) {\r\n var xObject = renderTargets[renderTargetMap[key]];\r\n out(\"q\");\r\n out(matrix.toString() + \" cm\");\r\n out(\"/\" + xObject.id + \" Do\");\r\n out(\"Q\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Returns the form object specified by key.\r\n * @param key {String}\r\n * @returns {{x: number, y: number, width: number, height: number, matrix: Matrix}}\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name getFormObject\r\n */\r\n API.getFormObject = function(key) {\r\n var xObject = renderTargets[renderTargetMap[key]];\r\n return {\r\n x: xObject.x,\r\n y: xObject.y,\r\n width: xObject.width,\r\n height: xObject.height,\r\n matrix: xObject.matrix\r\n };\r\n };\r\n\r\n /**\r\n * Saves as PDF document. An alias of jsPDF.output('save', 'filename.pdf').\r\n * Uses FileSaver.js-method saveAs.\r\n *\r\n * @memberof jsPDF#\r\n * @name save\r\n * @function\r\n * @instance\r\n * @param {string} filename The filename including extension.\r\n * @param {Object} options An Object with additional options, possible options: 'returnPromise'.\r\n * @returns {jsPDF|Promise} jsPDF-instance */\r\n API.save = function(filename, options) {\r\n filename = filename || \"generated.pdf\";\r\n\r\n options = options || {};\r\n options.returnPromise = options.returnPromise || false;\r\n\r\n if (options.returnPromise === false) {\r\n saveAs(getBlob(buildDocument()), filename);\r\n if (typeof saveAs.unload === \"function\") {\r\n if (globalObject.setTimeout) {\r\n setTimeout(saveAs.unload, 911);\r\n }\r\n }\r\n return this;\r\n } else {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n var result = saveAs(getBlob(buildDocument()), filename);\r\n if (typeof saveAs.unload === \"function\") {\r\n if (globalObject.setTimeout) {\r\n setTimeout(saveAs.unload, 911);\r\n }\r\n }\r\n resolve(result);\r\n } catch (e) {\r\n reject(e.message);\r\n }\r\n });\r\n }\r\n\r\n };\r\n\r\n // applying plugins (more methods) ON TOP of built-in API.\r\n // this is intentional as we allow plugins to override\r\n // built-ins\r\n for (var plugin in jsPDF.API) {\r\n if (jsPDF.API.hasOwnProperty(plugin)) {\r\n if (plugin === \"events\" && jsPDF.API.events.length) {\r\n (function(events, newEvents) {\r\n // jsPDF.API.events is a JS Array of Arrays\r\n // where each Array is a pair of event name, handler\r\n // Events were added by plugins to the jsPDF instantiator.\r\n // These are always added to the new instance and some ran\r\n // during instantiation.\r\n var eventname, handler_and_args, i;\r\n\r\n for (i = newEvents.length - 1; i !== -1; i--) {\r\n // subscribe takes 3 args: 'topic', function, runonce_flag\r\n // if undefined, runonce is false.\r\n // users can attach callback directly,\r\n // or they can attach an array with [callback, runonce_flag]\r\n // that's what the \"apply\" magic is for below.\r\n eventname = newEvents[i][0];\r\n handler_and_args = newEvents[i][1];\r\n events.subscribe.apply(\r\n events,\r\n [eventname].concat(\r\n typeof handler_and_args === \"function\"\r\n ? [handler_and_args]\r\n : handler_and_args\r\n )\r\n );\r\n }\r\n })(events, jsPDF.API.events);\r\n } else {\r\n API[plugin] = jsPDF.API[plugin];\r\n }\r\n }\r\n }\r\n\r\n var getPageWidth = (API.getPageWidth = function(pageNumber) {\r\n pageNumber = pageNumber || currentPage;\r\n return (\r\n (pagesContext[pageNumber].mediaBox.topRightX -\r\n pagesContext[pageNumber].mediaBox.bottomLeftX) /\r\n scaleFactor\r\n );\r\n });\r\n\r\n var setPageWidth = (API.setPageWidth = function(pageNumber, value) {\r\n pagesContext[pageNumber].mediaBox.topRightX =\r\n value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftX;\r\n });\r\n\r\n var getPageHeight = (API.getPageHeight = function(pageNumber) {\r\n pageNumber = pageNumber || currentPage;\r\n return (\r\n (pagesContext[pageNumber].mediaBox.topRightY -\r\n pagesContext[pageNumber].mediaBox.bottomLeftY) /\r\n scaleFactor\r\n );\r\n });\r\n\r\n var setPageHeight = (API.setPageHeight = function(pageNumber, value) {\r\n pagesContext[pageNumber].mediaBox.topRightY =\r\n value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftY;\r\n });\r\n\r\n /**\r\n * Object exposing internal API to plugins\r\n * @public\r\n * @ignore\r\n */\r\n API.internal = {\r\n pdfEscape: pdfEscape,\r\n getStyle: getStyle,\r\n getFont: getFontEntry,\r\n getFontSize: getFontSize,\r\n getCharSpace: getCharSpace,\r\n getTextColor: getTextColor,\r\n getLineHeight: getLineHeight,\r\n getLineHeightFactor: getLineHeightFactor,\r\n getLineWidth: getLineWidth,\r\n write: write,\r\n getHorizontalCoordinate: getHorizontalCoordinate,\r\n getVerticalCoordinate: getVerticalCoordinate,\r\n getCoordinateString: getHorizontalCoordinateString,\r\n getVerticalCoordinateString: getVerticalCoordinateString,\r\n collections: {},\r\n newObject: newObject,\r\n newAdditionalObject: newAdditionalObject,\r\n newObjectDeferred: newObjectDeferred,\r\n newObjectDeferredBegin: newObjectDeferredBegin,\r\n getFilters: getFilters,\r\n putStream: putStream,\r\n events: events,\r\n scaleFactor: scaleFactor,\r\n pageSize: {\r\n getWidth: function() {\r\n return getPageWidth(currentPage);\r\n },\r\n setWidth: function(value) {\r\n setPageWidth(currentPage, value);\r\n },\r\n getHeight: function() {\r\n return getPageHeight(currentPage);\r\n },\r\n setHeight: function(value) {\r\n setPageHeight(currentPage, value);\r\n }\r\n },\r\n encryptionOptions: encryptionOptions,\r\n encryption: encryption,\r\n getEncryptor: getEncryptor,\r\n output: output,\r\n getNumberOfPages: getNumberOfPages,\r\n pages: pages,\r\n out: out,\r\n f2: f2,\r\n f3: f3,\r\n getPageInfo: getPageInfo,\r\n getPageInfoByObjId: getPageInfoByObjId,\r\n getCurrentPageInfo: getCurrentPageInfo,\r\n getPDFVersion: getPdfVersion,\r\n Point: Point,\r\n Rectangle: Rectangle,\r\n Matrix: Matrix,\r\n hasHotfix: hasHotfix //Expose the hasHotfix check so plugins can also check them.\r\n };\r\n\r\n Object.defineProperty(API.internal.pageSize, \"width\", {\r\n get: function() {\r\n return getPageWidth(currentPage);\r\n },\r\n set: function(value) {\r\n setPageWidth(currentPage, value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(API.internal.pageSize, \"height\", {\r\n get: function() {\r\n return getPageHeight(currentPage);\r\n },\r\n set: function(value) {\r\n setPageHeight(currentPage, value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n\r\n //////////////////////////////////////////////////////\r\n // continuing initialization of jsPDF Document object\r\n //////////////////////////////////////////////////////\r\n // Add the first page automatically\r\n addFonts.call(API, standardFonts);\r\n activeFontKey = \"F1\";\r\n _addPage(format, orientation);\r\n\r\n events.publish(\"initialized\");\r\n return API;\r\n}\r\n\r\n/**\r\n * jsPDF.API is a STATIC property of jsPDF class.\r\n * jsPDF.API is an object you can add methods and properties to.\r\n * The methods / properties you add will show up in new jsPDF objects.\r\n *\r\n * One property is prepopulated. It is the 'events' Object. Plugin authors can add topics,\r\n * callbacks to this object. These will be reassigned to all new instances of jsPDF.\r\n *\r\n * @static\r\n * @public\r\n * @memberof jsPDF#\r\n * @name API\r\n *\r\n * @example\r\n * jsPDF.API.mymethod = function(){\r\n * // 'this' will be ref to internal API object. see jsPDF source\r\n * // , so you can refer to built-in methods like so:\r\n * // this.line(....)\r\n * // this.text(....)\r\n * }\r\n * var pdfdoc = new jsPDF()\r\n * pdfdoc.mymethod() // <- !!!!!!\r\n */\r\njsPDF.API = {\r\n events: []\r\n};\r\n/**\r\n * The version of jsPDF.\r\n * @name version\r\n * @type {string}\r\n * @memberof jsPDF#\r\n */\r\njsPDF.version = \"0.0.0\";\r\n\r\nexport { jsPDF, ShadingPattern, TilingPattern, GState };\r\nexport default jsPDF;\r\n","/* global jsPDF */\n/**\n * @license\n * Copyright (c) 2016 Alexander Weidt,\n * https://github.com/BiggA94\n *\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF AcroForm Plugin\n * @module AcroForm\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\nvar jsPDFAPI = jsPDF.API;\nvar scaleFactor = 1;\n\nvar pdfEscape = function(value) {\n return value\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\(/g, \"\\\\(\")\n .replace(/\\)/g, \"\\\\)\");\n};\nvar pdfUnescape = function(value) {\n return value\n .replace(/\\\\\\\\/g, \"\\\\\")\n .replace(/\\\\\\(/g, \"(\")\n .replace(/\\\\\\)/g, \")\");\n};\n\nvar f2 = function(number) {\n return number.toFixed(2); // Ie, %.2f\n};\n\nvar f5 = function(number) {\n return number.toFixed(5); // Ie, %.2f\n};\n\njsPDFAPI.__acroform__ = {};\nvar inherit = function(child, parent) {\n child.prototype = Object.create(parent.prototype);\n child.prototype.constructor = child;\n};\n\nvar scale = function(x) {\n return x * scaleFactor;\n};\n\nvar createFormXObject = function(formObject) {\n var xobj = new AcroFormXObject();\n var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n xobj.BBox = [0, 0, Number(f2(width)), Number(f2(height))];\n return xobj;\n};\n\n/**\n * Bit-Operations\n */\nvar setBit = (jsPDFAPI.__acroform__.setBit = function(number, bitPosition) {\n number = number || 0;\n bitPosition = bitPosition || 0;\n\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.setBit\"\n );\n }\n var bitMask = 1 << bitPosition;\n\n number |= bitMask;\n\n return number;\n});\n\nvar clearBit = (jsPDFAPI.__acroform__.clearBit = function(number, bitPosition) {\n number = number || 0;\n bitPosition = bitPosition || 0;\n\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\"\n );\n }\n var bitMask = 1 << bitPosition;\n\n number &= ~bitMask;\n\n return number;\n});\n\nvar getBit = (jsPDFAPI.__acroform__.getBit = function(number, bitPosition) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.getBit\"\n );\n }\n return (number & (1 << bitPosition)) === 0 ? 0 : 1;\n});\n\n/*\n * Ff starts counting the bit position at 1 and not like javascript at 0\n */\nvar getBitForPdf = (jsPDFAPI.__acroform__.getBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\"\n );\n }\n return getBit(number, bitPosition - 1);\n});\n\nvar setBitForPdf = (jsPDFAPI.__acroform__.setBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\"\n );\n }\n return setBit(number, bitPosition - 1);\n});\n\nvar clearBitForPdf = (jsPDFAPI.__acroform__.clearBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\"\n );\n }\n return clearBit(number, bitPosition - 1);\n});\n\nvar calculateCoordinates = (jsPDFAPI.__acroform__.calculateCoordinates = function(\n args,\n scope\n) {\n var getHorizontalCoordinate = scope.internal.getHorizontalCoordinate;\n var getVerticalCoordinate = scope.internal.getVerticalCoordinate;\n var x = args[0];\n var y = args[1];\n var w = args[2];\n var h = args[3];\n\n var coordinates = {};\n\n coordinates.lowerLeft_X = getHorizontalCoordinate(x) || 0;\n coordinates.lowerLeft_Y = getVerticalCoordinate(y + h) || 0;\n coordinates.upperRight_X = getHorizontalCoordinate(x + w) || 0;\n coordinates.upperRight_Y = getVerticalCoordinate(y) || 0;\n\n return [\n Number(f2(coordinates.lowerLeft_X)),\n Number(f2(coordinates.lowerLeft_Y)),\n Number(f2(coordinates.upperRight_X)),\n Number(f2(coordinates.upperRight_Y))\n ];\n});\n\nvar calculateAppearanceStream = function(formObject) {\n if (formObject.appearanceStreamContent) {\n return formObject.appearanceStreamContent;\n }\n\n if (!formObject.V && !formObject.DV) {\n return;\n }\n\n // else calculate it\n\n var stream = [];\n var text = formObject._V || formObject.DV;\n var calcRes = calculateX(formObject, text);\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n\n //PDF 32000-1:2008, page 444\n stream.push(\"/Tx BMC\");\n stream.push(\"q\");\n stream.push(\"BT\"); // Begin Text\n stream.push(formObject.scope.__private__.encodeColorString(formObject.color));\n stream.push(\"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf\");\n stream.push(\"1 0 0 1 0 0 Tm\"); // Transformation Matrix\n stream.push(calcRes.text);\n stream.push(\"ET\"); // End Text\n stream.push(\"Q\");\n stream.push(\"EMC\");\n\n var appearanceStreamContent = createFormXObject(formObject);\n appearanceStreamContent.scope = formObject.scope;\n appearanceStreamContent.stream = stream.join(\"\\n\");\n return appearanceStreamContent;\n};\n\nvar calculateX = function(formObject, text) {\n var maxFontSize =\n formObject.fontSize === 0 ? formObject.maxFontSize : formObject.fontSize;\n var returnValue = {\n text: \"\",\n fontSize: \"\"\n };\n // Remove Brackets\n text = text.substr(0, 1) == \"(\" ? text.substr(1) : text;\n text =\n text.substr(text.length - 1) == \")\"\n ? text.substr(0, text.length - 1)\n : text;\n // split into array of words\n var textSplit = text.split(\" \");\n if (formObject.multiline) {\n textSplit = textSplit.map(word => word.split(\"\\n\"));\n } else {\n textSplit = textSplit.map(word => [word]);\n }\n\n var fontSize = maxFontSize; // The Starting fontSize (The Maximum)\n var lineSpacing = 2;\n var borderPadding = 2;\n\n var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n height = height < 0 ? -height : height;\n var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n width = width < 0 ? -width : width;\n\n var isSmallerThanWidth = function(i, lastLine, fontSize) {\n if (i + 1 < textSplit.length) {\n var tmp = lastLine + \" \" + textSplit[i + 1][0];\n var TextWidth = calculateFontSpace(tmp, formObject, fontSize).width;\n var FieldWidth = width - 2 * borderPadding;\n return TextWidth <= FieldWidth;\n } else {\n return false;\n }\n };\n\n fontSize++;\n FontSize: while (fontSize > 0) {\n text = \"\";\n fontSize--;\n var textHeight = calculateFontSpace(\"3\", formObject, fontSize).height;\n var startY = formObject.multiline\n ? height - fontSize\n : (height - textHeight) / 2;\n startY += lineSpacing;\n var startX;\n\n var lastY = startY;\n var firstWordInLine = 0,\n lastWordInLine = 0;\n var lastLength;\n var currWord = 0;\n\n if (fontSize <= 0) {\n // In case, the Text doesn't fit at all\n fontSize = 12;\n text = \"(...) Tj\\n\";\n text +=\n \"% Width of Text: \" +\n calculateFontSpace(text, formObject, fontSize).width +\n \", FieldWidth:\" +\n width +\n \"\\n\";\n break;\n }\n\n var lastLine = \"\";\n var lineCount = 0;\n Line: for (var i = 0; i < textSplit.length; i++) {\n if (textSplit.hasOwnProperty(i)) {\n let isWithNewLine = false;\n if (textSplit[i].length !== 1 && currWord !== textSplit[i].length - 1) {\n if (\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n continue FontSize;\n }\n\n lastLine += textSplit[i][currWord];\n isWithNewLine = true;\n lastWordInLine = i;\n i--;\n } else {\n lastLine += textSplit[i][currWord] + \" \";\n lastLine =\n lastLine.substr(lastLine.length - 1) == \" \"\n ? lastLine.substr(0, lastLine.length - 1)\n : lastLine;\n var key = parseInt(i);\n var nextLineIsSmaller = isSmallerThanWidth(key, lastLine, fontSize);\n var isLastWord = i >= textSplit.length - 1;\n\n if (nextLineIsSmaller && !isLastWord) {\n lastLine += \" \";\n currWord = 0;\n continue; // Line\n } else if (!nextLineIsSmaller && !isLastWord) {\n if (!formObject.multiline) {\n continue FontSize;\n } else {\n if (\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n // If the Text is higher than the\n // FieldObject\n continue FontSize;\n }\n lastWordInLine = key;\n // go on\n }\n } else if (isLastWord) {\n lastWordInLine = key;\n } else {\n if (\n formObject.multiline &&\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n // If the Text is higher than the FieldObject\n continue FontSize;\n }\n }\n }\n // Remove last blank\n\n var line = \"\";\n\n for (var x = firstWordInLine; x <= lastWordInLine; x++) {\n var currLine = textSplit[x];\n if (formObject.multiline) {\n if (x === lastWordInLine) {\n line += currLine[currWord] + \" \";\n currWord = (currWord + 1) % currLine.length;\n continue;\n }\n if (x === firstWordInLine) {\n line += currLine[currLine.length - 1] + \" \";\n continue;\n }\n }\n line += currLine[0] + \" \";\n }\n\n // Remove last blank\n line =\n line.substr(line.length - 1) == \" \"\n ? line.substr(0, line.length - 1)\n : line;\n // lastLength -= blankSpace.width;\n lastLength = calculateFontSpace(line, formObject, fontSize).width;\n\n // Calculate startX\n switch (formObject.textAlign) {\n case \"right\":\n startX = width - lastLength - borderPadding;\n break;\n case \"center\":\n startX = (width - lastLength) / 2;\n break;\n case \"left\":\n default:\n startX = borderPadding;\n break;\n }\n text += f2(startX) + \" \" + f2(lastY) + \" Td\\n\";\n text += \"(\" + pdfEscape(line) + \") Tj\\n\";\n // reset X in PDF\n text += -f2(startX) + \" 0 Td\\n\";\n\n // After a Line, adjust y position\n lastY = -(fontSize + lineSpacing);\n\n // Reset for next iteration step\n lastLength = 0;\n firstWordInLine = isWithNewLine ? lastWordInLine : lastWordInLine + 1;\n lineCount++;\n\n lastLine = \"\";\n continue Line;\n }\n }\n break;\n }\n\n returnValue.text = text;\n returnValue.fontSize = fontSize;\n\n return returnValue;\n};\n\n/**\n * Small workaround for calculating the TextMetric approximately.\n *\n * @param text\n * @param fontsize\n * @returns {TextMetrics} (Has Height and Width)\n */\nvar calculateFontSpace = function(text, formObject, fontSize) {\n var font = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n );\n var width =\n formObject.scope.getStringUnitWidth(text, {\n font: font,\n fontSize: parseFloat(fontSize),\n charSpace: 0\n }) * parseFloat(fontSize);\n var height =\n formObject.scope.getStringUnitWidth(\"3\", {\n font: font,\n fontSize: parseFloat(fontSize),\n charSpace: 0\n }) *\n parseFloat(fontSize) *\n 1.5;\n return { height: height, width: width };\n};\n\nvar acroformPluginTemplate = {\n fields: [],\n xForms: [],\n /**\n * acroFormDictionaryRoot contains information about the AcroForm\n * Dictionary 0: The Event-Token, the AcroFormDictionaryCallback has\n * 1: The Object ID of the Root\n */\n acroFormDictionaryRoot: null,\n /**\n * After the PDF gets evaluated, the reference to the root has to be\n * reset, this indicates, whether the root has already been printed\n * out\n */\n printedOut: false,\n internal: null,\n isInitialized: false\n};\n\nvar annotReferenceCallback = function(scope) {\n //set objId to undefined and force it to get a new objId on buildDocument\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId = undefined;\n var fields = scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields;\n for (var i in fields) {\n if (fields.hasOwnProperty(i)) {\n var formObject = fields[i];\n //set objId to undefined and force it to get a new objId on buildDocument\n formObject.objId = undefined;\n // add Annot Reference!\n if (formObject.hasAnnotation) {\n // If theres an Annotation Widget in the Form Object, put the\n // Reference in the /Annot array\n createAnnotationReference(formObject, scope);\n }\n }\n }\n};\n\nvar putForm = function(formObject) {\n if (formObject.scope.internal.acroformPlugin.printedOut) {\n formObject.scope.internal.acroformPlugin.printedOut = false;\n formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot = null;\n }\n formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(\n formObject\n );\n};\n/**\n * Create the Reference to the widgetAnnotation, so that it gets referenced\n * in the Annot[] int the+ (Requires the Annotation Plugin)\n */\nvar createAnnotationReference = function(object, scope) {\n var options = {\n type: \"reference\",\n object: object\n };\n var findEntry = function(entry) {\n return entry.type === options.type && entry.object === options.object;\n };\n if (\n scope.internal\n .getPageInfo(object.page)\n .pageContext.annotations.find(findEntry) === undefined\n ) {\n scope.internal\n .getPageInfo(object.page)\n .pageContext.annotations.push(options);\n }\n};\n\n// Callbacks\n\nvar putCatalogCallback = function(scope) {\n // Put reference to AcroForm to DocumentCatalog\n if (\n typeof scope.internal.acroformPlugin.acroFormDictionaryRoot !== \"undefined\"\n ) {\n // for safety, shouldn't normally be the case\n scope.internal.write(\n \"/AcroForm \" +\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId +\n \" \" +\n 0 +\n \" R\"\n );\n } else {\n throw new Error(\"putCatalogCallback: Root missing.\");\n }\n};\n\n/**\n * Adds /Acroform X 0 R to Document Catalog, and creates the AcroForm\n * Dictionary\n */\nvar AcroFormDictionaryCallback = function(scope) {\n // Remove event\n scope.internal.events.unsubscribe(\n scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID\n );\n delete scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID;\n scope.internal.acroformPlugin.printedOut = true;\n};\n\n/**\n * Creates the single Fields and writes them into the Document\n *\n * If fieldArray is set, use the fields that are inside it instead of the\n * fields from the AcroRoot (for the FormXObjects...)\n */\nvar createFieldCallback = function(fieldArray, scope) {\n var standardFields = !fieldArray;\n\n if (!fieldArray) {\n // in case there is no fieldArray specified, we want to print out\n // the Fields of the AcroForm\n // Print out Root\n scope.internal.newObjectDeferredBegin(\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId,\n true\n );\n scope.internal.acroformPlugin.acroFormDictionaryRoot.putStream();\n }\n\n fieldArray =\n fieldArray || scope.internal.acroformPlugin.acroFormDictionaryRoot.Kids;\n\n for (var i in fieldArray) {\n if (fieldArray.hasOwnProperty(i)) {\n var fieldObject = fieldArray[i];\n var keyValueList = [];\n var oldRect = fieldObject.Rect;\n\n if (fieldObject.Rect) {\n fieldObject.Rect = calculateCoordinates(fieldObject.Rect, scope);\n }\n\n // Start Writing the Object\n scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n fieldObject.DA = AcroFormAppearance.createDefaultAppearanceStream(\n fieldObject\n );\n\n if (\n typeof fieldObject === \"object\" &&\n typeof fieldObject.getKeyValueListForStream === \"function\"\n ) {\n keyValueList = fieldObject.getKeyValueListForStream();\n }\n\n fieldObject.Rect = oldRect;\n\n if (\n fieldObject.hasAppearanceStream &&\n !fieldObject.appearanceStreamContent\n ) {\n // Calculate Appearance\n var appearance = calculateAppearanceStream(fieldObject);\n keyValueList.push({ key: \"AP\", value: \"<>\" });\n\n scope.internal.acroformPlugin.xForms.push(appearance);\n }\n\n // Assume AppearanceStreamContent is a Array with N,R,D (at least\n // one of them!)\n if (fieldObject.appearanceStreamContent) {\n var appearanceStreamString = \"\";\n // Iterate over N,R and D\n for (var k in fieldObject.appearanceStreamContent) {\n if (fieldObject.appearanceStreamContent.hasOwnProperty(k)) {\n var value = fieldObject.appearanceStreamContent[k];\n appearanceStreamString += \"/\" + k + \" \";\n appearanceStreamString += \"<<\";\n if (Object.keys(value).length >= 1 || Array.isArray(value)) {\n // appearanceStream is an Array or Object!\n for (var i in value) {\n if (value.hasOwnProperty(i)) {\n var obj = value[i];\n if (typeof obj === \"function\") {\n // if Function is referenced, call it in order\n // to get the FormXObject\n obj = obj.call(scope, fieldObject);\n }\n appearanceStreamString += \"/\" + i + \" \" + obj + \" \";\n\n // In case the XForm is already used, e.g. OffState\n // of CheckBoxes, don't add it\n if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n scope.internal.acroformPlugin.xForms.push(obj);\n }\n }\n } else {\n obj = value;\n if (typeof obj === \"function\") {\n // if Function is referenced, call it in order to\n // get the FormXObject\n obj = obj.call(scope, fieldObject);\n }\n appearanceStreamString += \"/\" + i + \" \" + obj;\n if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n scope.internal.acroformPlugin.xForms.push(obj);\n }\n appearanceStreamString += \">>\";\n }\n }\n\n // appearance stream is a normal Object..\n keyValueList.push({\n key: \"AP\",\n value: \"<<\\n\" + appearanceStreamString + \">>\"\n });\n }\n\n scope.internal.putStream({\n additionalKeyValues: keyValueList,\n objectId: fieldObject.objId\n });\n\n scope.internal.out(\"endobj\");\n }\n }\n if (standardFields) {\n createXFormObjectCallback(scope.internal.acroformPlugin.xForms, scope);\n }\n};\n\nvar createXFormObjectCallback = function(fieldArray, scope) {\n for (var i in fieldArray) {\n if (fieldArray.hasOwnProperty(i)) {\n var key = i;\n var fieldObject = fieldArray[i];\n // Start Writing the Object\n scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n if (\n typeof fieldObject === \"object\" &&\n typeof fieldObject.putStream === \"function\"\n ) {\n fieldObject.putStream();\n }\n delete fieldArray[key];\n }\n }\n};\n\nvar initializeAcroForm = function(scope, formObject) {\n formObject.scope = scope;\n if (\n scope.internal !== undefined &&\n (scope.internal.acroformPlugin === undefined ||\n scope.internal.acroformPlugin.isInitialized === false)\n ) {\n AcroFormField.FieldNum = 0;\n scope.internal.acroformPlugin = JSON.parse(\n JSON.stringify(acroformPluginTemplate)\n );\n if (scope.internal.acroformPlugin.acroFormDictionaryRoot) {\n throw new Error(\"Exception while creating AcroformDictionary\");\n }\n scaleFactor = scope.internal.scaleFactor;\n // The Object Number of the AcroForm Dictionary\n scope.internal.acroformPlugin.acroFormDictionaryRoot = new AcroFormDictionary();\n scope.internal.acroformPlugin.acroFormDictionaryRoot.scope = scope;\n\n // add Callback for creating the AcroForm Dictionary\n scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID = scope.internal.events.subscribe(\n \"postPutResources\",\n function() {\n AcroFormDictionaryCallback(scope);\n }\n );\n\n scope.internal.events.subscribe(\"buildDocument\", function() {\n annotReferenceCallback(scope);\n }); // buildDocument\n\n // Register event, that is triggered when the DocumentCatalog is\n // written, in order to add /AcroForm\n\n scope.internal.events.subscribe(\"putCatalog\", function() {\n putCatalogCallback(scope);\n });\n\n // Register event, that creates all Fields\n scope.internal.events.subscribe(\"postPutPages\", function(fieldArray) {\n createFieldCallback(fieldArray, scope);\n });\n\n scope.internal.acroformPlugin.isInitialized = true;\n }\n};\n\n//PDF 32000-1:2008, page 26, 7.3.6\nvar arrayToPdfArray = (jsPDFAPI.__acroform__.arrayToPdfArray = function(\n array,\n objId,\n scope\n) {\n var encryptor = function(data) {\n return data;\n };\n if (Array.isArray(array)) {\n var content = \"[\";\n for (var i = 0; i < array.length; i++) {\n if (i !== 0) {\n content += \" \";\n }\n switch (typeof array[i]) {\n case \"boolean\":\n case \"number\":\n case \"object\":\n content += array[i].toString();\n break;\n case \"string\":\n if (array[i].substr(0, 1) !== \"/\") {\n if (typeof objId !== \"undefined\" && scope)\n encryptor = scope.internal.getEncryptor(objId);\n content += \"(\" + pdfEscape(encryptor(array[i].toString())) + \")\";\n } else {\n content += array[i].toString();\n }\n break;\n }\n }\n content += \"]\";\n return content;\n }\n throw new Error(\n \"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\"\n );\n});\nfunction getMatches(string, regex, index) {\n index || (index = 1); // default to the first capturing group\n var matches = [];\n var match;\n while ((match = regex.exec(string))) {\n matches.push(match[index]);\n }\n return matches;\n}\nvar pdfArrayToStringArray = function(array) {\n var result = [];\n if (typeof array === \"string\") {\n result = getMatches(array, /\\((.*?)\\)/g);\n }\n return result;\n};\n\nvar toPdfString = function(string, objId, scope) {\n var encryptor = function(data) {\n return data;\n };\n if (typeof objId !== \"undefined\" && scope)\n encryptor = scope.internal.getEncryptor(objId);\n string = string || \"\";\n string.toString();\n string = \"(\" + pdfEscape(encryptor(string)) + \")\";\n return string;\n};\n\n// ##########################\n// Classes\n// ##########################\n\n/**\n * @class AcroFormPDFObject\n * @classdesc A AcroFormPDFObject\n */\nvar AcroFormPDFObject = function() {\n this._objId = undefined;\n this._scope = undefined;\n\n /**\n * @name AcroFormPDFObject#objId\n * @type {any}\n */\n Object.defineProperty(this, \"objId\", {\n get: function() {\n if (typeof this._objId === \"undefined\") {\n if (typeof this.scope === \"undefined\") {\n return undefined;\n }\n this._objId = this.scope.internal.newObjectDeferred();\n }\n return this._objId;\n },\n set: function(value) {\n this._objId = value;\n }\n });\n Object.defineProperty(this, \"scope\", {\n value: this._scope,\n writable: true\n });\n};\n\n/**\n * @function AcroFormPDFObject.toString\n */\nAcroFormPDFObject.prototype.toString = function() {\n return this.objId + \" 0 R\";\n};\n\nAcroFormPDFObject.prototype.putStream = function() {\n var keyValueList = this.getKeyValueListForStream();\n this.scope.internal.putStream({\n data: this.stream,\n additionalKeyValues: keyValueList,\n objectId: this.objId\n });\n this.scope.internal.out(\"endobj\");\n};\n\n/**\n * Returns an key-value-List of all non-configurable Variables from the Object\n *\n * @name getKeyValueListForStream\n * @returns {string}\n */\nAcroFormPDFObject.prototype.getKeyValueListForStream = function() {\n var keyValueList = [];\n var keys = Object.getOwnPropertyNames(this).filter(function(key) {\n return (\n key != \"content\" &&\n key != \"appearanceStreamContent\" &&\n key != \"scope\" &&\n key != \"objId\" &&\n key.substring(0, 1) != \"_\"\n );\n });\n\n for (var i in keys) {\n if (Object.getOwnPropertyDescriptor(this, keys[i]).configurable === false) {\n var key = keys[i];\n var value = this[key];\n\n if (value) {\n if (Array.isArray(value)) {\n keyValueList.push({\n key: key,\n value: arrayToPdfArray(value, this.objId, this.scope)\n });\n } else if (value instanceof AcroFormPDFObject) {\n // In case it is a reference to another PDFObject,\n // take the reference number\n value.scope = this.scope;\n keyValueList.push({ key: key, value: value.objId + \" 0 R\" });\n } else if (typeof value !== \"function\") {\n keyValueList.push({ key: key, value: value });\n }\n }\n }\n }\n return keyValueList;\n};\n\nvar AcroFormXObject = function() {\n AcroFormPDFObject.call(this);\n\n Object.defineProperty(this, \"Type\", {\n value: \"/XObject\",\n configurable: false,\n writable: true\n });\n\n Object.defineProperty(this, \"Subtype\", {\n value: \"/Form\",\n configurable: false,\n writable: true\n });\n\n Object.defineProperty(this, \"FormType\", {\n value: 1,\n configurable: false,\n writable: true\n });\n\n var _BBox = [];\n Object.defineProperty(this, \"BBox\", {\n configurable: false,\n get: function() {\n return _BBox;\n },\n set: function(value) {\n _BBox = value;\n }\n });\n\n Object.defineProperty(this, \"Resources\", {\n value: \"2 0 R\",\n configurable: false,\n writable: true\n });\n\n var _stream;\n Object.defineProperty(this, \"stream\", {\n enumerable: false,\n configurable: true,\n set: function(value) {\n _stream = value.trim();\n },\n get: function() {\n if (_stream) {\n return _stream;\n } else {\n return null;\n }\n }\n });\n};\n\ninherit(AcroFormXObject, AcroFormPDFObject);\n\nvar AcroFormDictionary = function() {\n AcroFormPDFObject.call(this);\n\n var _Kids = [];\n\n Object.defineProperty(this, \"Kids\", {\n enumerable: false,\n configurable: true,\n get: function() {\n if (_Kids.length > 0) {\n return _Kids;\n } else {\n return undefined;\n }\n }\n });\n Object.defineProperty(this, \"Fields\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _Kids;\n }\n });\n\n // Default Appearance\n var _DA;\n Object.defineProperty(this, \"DA\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_DA) {\n return undefined;\n }\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n return \"(\" + pdfEscape(encryptor(_DA)) + \")\";\n },\n set: function(value) {\n _DA = value;\n }\n });\n};\n\ninherit(AcroFormDictionary, AcroFormPDFObject);\n\n/**\n * The Field Object contains the Variables, that every Field needs\n *\n * @class AcroFormField\n * @classdesc An AcroForm FieldObject\n */\nvar AcroFormField = function() {\n AcroFormPDFObject.call(this);\n\n //Annotation-Flag See Table 165\n var _F = 4;\n Object.defineProperty(this, \"F\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _F;\n },\n set: function(value) {\n if (!isNaN(value)) {\n _F = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute F supplied.'\n );\n }\n }\n });\n\n /**\n * (PDF 1.2) If set, print the annotation when the page is printed. If clear, never print the annotation, regardless of wether is is displayed on the screen.\n * NOTE 2 This can be useful for annotations representing interactive pushbuttons, which would serve no meaningful purpose on the printed page.\n *\n * @name AcroFormField#showWhenPrinted\n * @default true\n * @type {boolean}\n */\n Object.defineProperty(this, \"showWhenPrinted\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(_F, 3));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.F = setBitForPdf(_F, 3);\n } else {\n this.F = clearBitForPdf(_F, 3);\n }\n }\n });\n\n var _Ff = 0;\n Object.defineProperty(this, \"Ff\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _Ff;\n },\n set: function(value) {\n if (!isNaN(value)) {\n _Ff = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute Ff supplied.'\n );\n }\n }\n });\n\n var _Rect = [];\n Object.defineProperty(this, \"Rect\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (_Rect.length === 0) {\n return undefined;\n }\n return _Rect;\n },\n set: function(value) {\n if (typeof value !== \"undefined\") {\n _Rect = value;\n } else {\n _Rect = [];\n }\n }\n });\n\n /**\n * The x-position of the field.\n *\n * @name AcroFormField#x\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[0])) {\n return 0;\n }\n return _Rect[0];\n },\n set: function(value) {\n _Rect[0] = value;\n }\n });\n\n /**\n * The y-position of the field.\n *\n * @name AcroFormField#y\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[1])) {\n return 0;\n }\n return _Rect[1];\n },\n set: function(value) {\n _Rect[1] = value;\n }\n });\n\n /**\n * The width of the field.\n *\n * @name AcroFormField#width\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[2])) {\n return 0;\n }\n return _Rect[2];\n },\n set: function(value) {\n _Rect[2] = value;\n }\n });\n\n /**\n * The height of the field.\n *\n * @name AcroFormField#height\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[3])) {\n return 0;\n }\n return _Rect[3];\n },\n set: function(value) {\n _Rect[3] = value;\n }\n });\n\n var _FT = \"\";\n Object.defineProperty(this, \"FT\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _FT;\n },\n set: function(value) {\n switch (value) {\n case \"/Btn\":\n case \"/Tx\":\n case \"/Ch\":\n case \"/Sig\":\n _FT = value;\n break;\n default:\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute FT supplied.'\n );\n }\n }\n });\n\n var _T = null;\n\n Object.defineProperty(this, \"T\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (!_T || _T.length < 1) {\n // In case of a Child from a Radio´Group, you don't need a FieldName\n if (this instanceof AcroFormChildClass) {\n return undefined;\n }\n _T = \"FieldObject\" + AcroFormField.FieldNum++;\n }\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n return \"(\" + pdfEscape(encryptor(_T)) + \")\";\n },\n set: function(value) {\n _T = value.toString();\n }\n });\n\n /**\n * (Optional) The partial field name (see 12.7.3.2, “Field Names”).\n *\n * @name AcroFormField#fieldName\n * @default null\n * @type {string}\n */\n Object.defineProperty(this, \"fieldName\", {\n configurable: true,\n enumerable: true,\n get: function() {\n return _T;\n },\n set: function(value) {\n _T = value;\n }\n });\n\n var _fontName = \"helvetica\";\n /**\n * The fontName of the font to be used.\n *\n * @name AcroFormField#fontName\n * @default 'helvetica'\n * @type {string}\n */\n Object.defineProperty(this, \"fontName\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontName;\n },\n set: function(value) {\n _fontName = value;\n }\n });\n\n var _fontStyle = \"normal\";\n /**\n * The fontStyle of the font to be used.\n *\n * @name AcroFormField#fontStyle\n * @default 'normal'\n * @type {string}\n */\n Object.defineProperty(this, \"fontStyle\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontStyle;\n },\n set: function(value) {\n _fontStyle = value;\n }\n });\n\n var _fontSize = 0;\n /**\n * The fontSize of the font to be used.\n *\n * @name AcroFormField#fontSize\n * @default 0 (for auto)\n * @type {number}\n */\n Object.defineProperty(this, \"fontSize\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontSize;\n },\n set: function(value) {\n _fontSize = value;\n }\n });\n\n var _maxFontSize = undefined;\n /**\n * The maximum fontSize of the font to be used.\n *\n * @name AcroFormField#maxFontSize\n * @default 0 (for auto)\n * @type {number}\n */\n Object.defineProperty(this, \"maxFontSize\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (_maxFontSize === undefined) {\n // use the old default value here - the value is some kind of random as it depends on the scaleFactor (user unit)\n // (\"50\" is transformed to the \"user space\" but then used in \"pdf space\")\n return 50 / scaleFactor;\n } else {\n return _maxFontSize;\n }\n },\n set: function(value) {\n _maxFontSize = value;\n }\n });\n\n var _color = \"black\";\n /**\n * The color of the text\n *\n * @name AcroFormField#color\n * @default 'black'\n * @type {string|rgba}\n */\n Object.defineProperty(this, \"color\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _color;\n },\n set: function(value) {\n _color = value;\n }\n });\n\n var _DA = \"/F1 0 Tf 0 g\";\n // Defines the default appearance (Needed for variable Text)\n Object.defineProperty(this, \"DA\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (\n !_DA ||\n this instanceof AcroFormChildClass ||\n this instanceof AcroFormTextField\n ) {\n return undefined;\n }\n return toPdfString(_DA, this.objId, this.scope);\n },\n set: function(value) {\n value = value.toString();\n _DA = value;\n }\n });\n\n var _DV = null;\n Object.defineProperty(this, \"DV\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_DV) {\n return undefined;\n }\n if (this instanceof AcroFormButton === false) {\n return toPdfString(_DV, this.objId, this.scope);\n }\n return _DV;\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === false) {\n if (value.substr(0, 1) === \"(\") {\n _DV = pdfUnescape(value.substr(1, value.length - 2));\n } else {\n _DV = pdfUnescape(value);\n }\n } else {\n _DV = value;\n }\n }\n });\n\n /**\n * (Optional; inheritable) The default value to which the field reverts when a reset-form action is executed (see 12.7.5.3, “Reset-Form Action”). The format of this value is the same as that of value.\n *\n * @name AcroFormField#defaultValue\n * @default null\n * @type {any}\n */\n Object.defineProperty(this, \"defaultValue\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (this instanceof AcroFormButton === true) {\n return pdfUnescape(_DV.substr(1, _DV.length - 1));\n } else {\n return _DV;\n }\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === true) {\n _DV = \"/\" + value;\n } else {\n _DV = value;\n }\n }\n });\n\n var _V = null;\n Object.defineProperty(this, \"_V\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_V) {\n return undefined;\n }\n return _V;\n },\n set: function(value) {\n this.V = value;\n }\n });\n Object.defineProperty(this, \"V\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_V) {\n return undefined;\n }\n if (this instanceof AcroFormButton === false) {\n return toPdfString(_V, this.objId, this.scope);\n }\n return _V;\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === false) {\n if (value.substr(0, 1) === \"(\") {\n _V = pdfUnescape(value.substr(1, value.length - 2));\n } else {\n _V = pdfUnescape(value);\n }\n } else {\n _V = value;\n }\n }\n });\n\n /**\n * (Optional; inheritable) The field’s value, whose format varies depending on the field type. See the descriptions of individual field types for further information.\n *\n * @name AcroFormField#value\n * @default null\n * @type {any}\n */\n Object.defineProperty(this, \"value\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (this instanceof AcroFormButton === true) {\n return pdfUnescape(_V.substr(1, _V.length - 1));\n } else {\n return _V;\n }\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === true) {\n _V = \"/\" + value;\n } else {\n _V = value;\n }\n }\n });\n\n /**\n * Check if field has annotations\n *\n * @name AcroFormField#hasAnnotation\n * @readonly\n * @type {boolean}\n */\n Object.defineProperty(this, \"hasAnnotation\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return this.Rect;\n }\n });\n\n Object.defineProperty(this, \"Type\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return this.hasAnnotation ? \"/Annot\" : null;\n }\n });\n\n Object.defineProperty(this, \"Subtype\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return this.hasAnnotation ? \"/Widget\" : null;\n }\n });\n\n var _hasAppearanceStream = false;\n /**\n * true if field has an appearanceStream\n *\n * @name AcroFormField#hasAppearanceStream\n * @readonly\n * @type {boolean}\n */\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _hasAppearanceStream;\n },\n set: function(value) {\n value = Boolean(value);\n _hasAppearanceStream = value;\n }\n });\n\n /**\n * The page on which the AcroFormField is placed\n *\n * @name AcroFormField#page\n * @type {number}\n */\n var _page;\n Object.defineProperty(this, \"page\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_page) {\n return undefined;\n }\n return _page;\n },\n set: function(value) {\n _page = value;\n }\n });\n\n /**\n * If set, the user may not change the value of the field. Any associated widget annotations will not interact with the user; that is, they will not respond to mouse clicks or change their appearance in response to mouse motions. This flag is useful for fields whose values are computed or imported from a database.\n *\n * @name AcroFormField#readOnly\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"readOnly\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 1));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 1);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 1);\n }\n }\n });\n\n /**\n * If set, the field shall have a value at the time it is exported by a submitform action (see 12.7.5.2, “Submit-Form Action”).\n *\n * @name AcroFormField#required\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"required\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 2));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 2);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 2);\n }\n }\n });\n\n /**\n * If set, the field shall not be exported by a submit-form action (see 12.7.5.2, “Submit-Form Action”)\n *\n * @name AcroFormField#noExport\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"noExport\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 3));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 3);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 3);\n }\n }\n });\n\n var _Q = null;\n Object.defineProperty(this, \"Q\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (_Q === null) {\n return undefined;\n }\n return _Q;\n },\n set: function(value) {\n if ([0, 1, 2].indexOf(value) !== -1) {\n _Q = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute Q supplied.'\n );\n }\n }\n });\n\n /**\n * (Optional; inheritable) A code specifying the form of quadding (justification) that shall be used in displaying the text:\n * 'left', 'center', 'right'\n *\n * @name AcroFormField#textAlign\n * @default 'left'\n * @type {string}\n */\n Object.defineProperty(this, \"textAlign\", {\n get: function() {\n var result;\n switch (_Q) {\n case 0:\n default:\n result = \"left\";\n break;\n case 1:\n result = \"center\";\n break;\n case 2:\n result = \"right\";\n break;\n }\n return result;\n },\n configurable: true,\n enumerable: true,\n set: function(value) {\n switch (value) {\n case \"right\":\n case 2:\n _Q = 2;\n break;\n case \"center\":\n case 1:\n _Q = 1;\n break;\n case \"left\":\n case 0:\n default:\n _Q = 0;\n }\n }\n });\n};\n\ninherit(AcroFormField, AcroFormPDFObject);\n\n/**\n * @class AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormChoiceField = function() {\n AcroFormField.call(this);\n // Field Type = Choice Field\n this.FT = \"/Ch\";\n // options\n this.V = \"()\";\n\n this.fontName = \"zapfdingbats\";\n // Top Index\n var _TI = 0;\n\n Object.defineProperty(this, \"TI\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _TI;\n },\n set: function(value) {\n _TI = value;\n }\n });\n\n /**\n * (Optional) For scrollable list boxes, the top index (the index in the Opt array of the first option visible in the list). Default value: 0.\n *\n * @name AcroFormChoiceField#topIndex\n * @default 0\n * @type {number}\n */\n Object.defineProperty(this, \"topIndex\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _TI;\n },\n set: function(value) {\n _TI = value;\n }\n });\n\n var _Opt = [];\n Object.defineProperty(this, \"Opt\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return arrayToPdfArray(_Opt, this.objId, this.scope);\n },\n set: function(value) {\n _Opt = pdfArrayToStringArray(value);\n }\n });\n\n /**\n * @memberof AcroFormChoiceField\n * @name getOptions\n * @function\n * @instance\n * @returns {array} array of Options\n */\n this.getOptions = function() {\n return _Opt;\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name setOptions\n * @function\n * @instance\n * @param {array} value\n */\n this.setOptions = function(value) {\n _Opt = value;\n if (this.sort) {\n _Opt.sort();\n }\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name addOption\n * @function\n * @instance\n * @param {string} value\n */\n this.addOption = function(value) {\n value = value || \"\";\n value = value.toString();\n _Opt.push(value);\n if (this.sort) {\n _Opt.sort();\n }\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name removeOption\n * @function\n * @instance\n * @param {string} value\n * @param {boolean} allEntries (default: false)\n */\n this.removeOption = function(value, allEntries) {\n allEntries = allEntries || false;\n value = value || \"\";\n value = value.toString();\n\n while (_Opt.indexOf(value) !== -1) {\n _Opt.splice(_Opt.indexOf(value), 1);\n if (allEntries === false) {\n break;\n }\n }\n };\n\n /**\n * If set, the field is a combo box; if clear, the field is a list box.\n *\n * @name AcroFormChoiceField#combo\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"combo\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 18));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 18);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 18);\n }\n }\n });\n\n /**\n * If set, the combo box shall include an editable text box as well as a drop-down list; if clear, it shall include only a drop-down list. This flag shall be used only if the Combo flag is set.\n *\n * @name AcroFormChoiceField#edit\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"edit\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 19));\n },\n set: function(value) {\n //PDF 32000-1:2008, page 444\n if (this.combo === true) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 19);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 19);\n }\n }\n }\n });\n\n /**\n * If set, the field’s option items shall be sorted alphabetically. This flag is intended for use by writers, not by readers. Conforming readers shall display the options in the order in which they occur in the Opt array (see Table 231).\n *\n * @name AcroFormChoiceField#sort\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"sort\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 20));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 20);\n _Opt.sort();\n } else {\n this.Ff = clearBitForPdf(this.Ff, 20);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, more than one of the field’s option items may be selected simultaneously; if clear, at most one item shall be selected\n *\n * @name AcroFormChoiceField#multiSelect\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"multiSelect\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 22));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 22);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 22);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, text entered in the field shall not be spellchecked. This flag shall not be used unless the Combo and Edit flags are both set.\n *\n * @name AcroFormChoiceField#doNotSpellCheck\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 23));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 23);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 23);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, the new value shall be committed as soon as a selection is made (commonly with the pointing device). In this case, supplying a value for a field involves three actions: selecting the field for fill-in, selecting a choice for the fill-in value, and leaving that field, which finalizes or “commits” the data choice and triggers any actions associated with the entry or changing of this data. If this flag is on, then processing does not wait for leaving the field action to occur, but immediately proceeds to the third step.\n * This option enables applications to perform an action once a selection is made, without requiring the user to exit the field. If clear, the new value is not committed until the user exits the field.\n *\n * @name AcroFormChoiceField#commitOnSelChange\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"commitOnSelChange\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 27));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 27);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 27);\n }\n }\n });\n\n this.hasAppearanceStream = false;\n};\ninherit(AcroFormChoiceField, AcroFormField);\n\n/**\n * @class AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormListBox = function() {\n AcroFormChoiceField.call(this);\n this.fontName = \"helvetica\";\n\n //PDF 32000-1:2008, page 444\n this.combo = false;\n};\ninherit(AcroFormListBox, AcroFormChoiceField);\n\n/**\n * @class AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormComboBox = function() {\n AcroFormListBox.call(this);\n this.combo = true;\n};\ninherit(AcroFormComboBox, AcroFormListBox);\n\n/**\n * @class AcroFormEditBox\n * @extends AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormEditBox = function() {\n AcroFormComboBox.call(this);\n this.edit = true;\n};\ninherit(AcroFormEditBox, AcroFormComboBox);\n\n/**\n * @class AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormButton = function() {\n AcroFormField.call(this);\n this.FT = \"/Btn\";\n\n /**\n * (Radio buttons only) If set, exactly one radio button shall be selected at all times; selecting the currently selected button has no effect. If clear, clicking the selected button deselects it, leaving no button selected.\n *\n * @name AcroFormButton#noToggleToOff\n * @type {boolean}\n */\n Object.defineProperty(this, \"noToggleToOff\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 15));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 15);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 15);\n }\n }\n });\n\n /**\n * If set, the field is a set of radio buttons; if clear, the field is a checkbox. This flag may be set only if the Pushbutton flag is clear.\n *\n * @name AcroFormButton#radio\n * @type {boolean}\n */\n Object.defineProperty(this, \"radio\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 16));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 16);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 16);\n }\n }\n });\n\n /**\n * If set, the field is a pushbutton that does not retain a permanent value.\n *\n * @name AcroFormButton#pushButton\n * @type {boolean}\n */\n Object.defineProperty(this, \"pushButton\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 17));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 17);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 17);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, a group of radio buttons within a radio button field that use the same value for the on state will turn on and off in unison; that is if one is checked, they are all checked. If clear, the buttons are mutually exclusive (the same behavior as HTML radio buttons).\n *\n * @name AcroFormButton#radioIsUnison\n * @type {boolean}\n */\n Object.defineProperty(this, \"radioIsUnison\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 26));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 26);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 26);\n }\n }\n });\n\n var _MK = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: false,\n configurable: false,\n get: function() {\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n if (Object.keys(_MK).length !== 0) {\n var result = [];\n result.push(\"<<\");\n var key;\n for (key in _MK) {\n result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n }\n result.push(\">>\");\n return result.join(\"\\n\");\n }\n return undefined;\n },\n set: function(value) {\n if (typeof value === \"object\") {\n _MK = value;\n }\n }\n });\n\n /**\n * From the PDF reference:\n * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n *\n * - '8' = Cross,\n * - 'l' = Circle,\n * - '' = nothing\n * @name AcroFormButton#caption\n * @type {string}\n */\n Object.defineProperty(this, \"caption\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MK.CA || \"\";\n },\n set: function(value) {\n if (typeof value === \"string\") {\n _MK.CA = value;\n }\n }\n });\n\n var _AS;\n Object.defineProperty(this, \"AS\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _AS;\n },\n set: function(value) {\n _AS = value;\n }\n });\n\n /**\n * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n *\n * @name AcroFormButton#appearanceState\n * @type {any}\n */\n Object.defineProperty(this, \"appearanceState\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _AS.substr(1, _AS.length - 1);\n },\n set: function(value) {\n _AS = \"/\" + value;\n }\n });\n};\ninherit(AcroFormButton, AcroFormField);\n\n/**\n * @class AcroFormPushButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormPushButton = function() {\n AcroFormButton.call(this);\n this.pushButton = true;\n};\ninherit(AcroFormPushButton, AcroFormButton);\n\n/**\n * @class AcroFormRadioButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormRadioButton = function() {\n AcroFormButton.call(this);\n this.radio = true;\n this.pushButton = false;\n\n var _Kids = [];\n Object.defineProperty(this, \"Kids\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _Kids;\n },\n set: function(value) {\n if (typeof value !== \"undefined\") {\n _Kids = value;\n } else {\n _Kids = [];\n }\n }\n });\n};\ninherit(AcroFormRadioButton, AcroFormButton);\n\n/**\n * The Child class of a RadioButton (the radioGroup) -> The single Buttons\n *\n * @class AcroFormChildClass\n * @extends AcroFormField\n * @ignore\n */\nvar AcroFormChildClass = function() {\n AcroFormField.call(this);\n\n var _parent;\n Object.defineProperty(this, \"Parent\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _parent;\n },\n set: function(value) {\n _parent = value;\n }\n });\n\n var _optionName;\n Object.defineProperty(this, \"optionName\", {\n enumerable: false,\n configurable: true,\n get: function() {\n return _optionName;\n },\n set: function(value) {\n _optionName = value;\n }\n });\n\n var _MK = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: false,\n configurable: false,\n get: function() {\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n var result = [];\n result.push(\"<<\");\n var key;\n for (key in _MK) {\n result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n }\n result.push(\">>\");\n return result.join(\"\\n\");\n },\n set: function(value) {\n if (typeof value === \"object\") {\n _MK = value;\n }\n }\n });\n\n /**\n * From the PDF reference:\n * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n *\n * - '8' = Cross,\n * - 'l' = Circle,\n * - '' = nothing\n * @name AcroFormButton#caption\n * @type {string}\n */\n Object.defineProperty(this, \"caption\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MK.CA || \"\";\n },\n set: function(value) {\n if (typeof value === \"string\") {\n _MK.CA = value;\n }\n }\n });\n\n var _AS;\n Object.defineProperty(this, \"AS\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _AS;\n },\n set: function(value) {\n _AS = value;\n }\n });\n\n /**\n * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n *\n * @name AcroFormButton#appearanceState\n * @type {any}\n */\n Object.defineProperty(this, \"appearanceState\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _AS.substr(1, _AS.length - 1);\n },\n set: function(value) {\n _AS = \"/\" + value;\n }\n });\n this.caption = \"l\";\n this.appearanceState = \"Off\";\n // todo: set AppearanceType as variable that can be set from the\n // outside...\n this._AppearanceType = AcroFormAppearance.RadioButton.Circle;\n // The Default appearanceType is the Circle\n this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(\n this.optionName\n );\n};\ninherit(AcroFormChildClass, AcroFormField);\n\nAcroFormRadioButton.prototype.setAppearance = function(appearance) {\n if (!(\"createAppearanceStream\" in appearance && \"getCA\" in appearance)) {\n throw new Error(\n \"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\"\n );\n }\n for (var objId in this.Kids) {\n if (this.Kids.hasOwnProperty(objId)) {\n var child = this.Kids[objId];\n child.appearanceStreamContent = appearance.createAppearanceStream(\n child.optionName\n );\n child.caption = appearance.getCA();\n }\n }\n};\n\nAcroFormRadioButton.prototype.createOption = function(name) {\n // Create new Child for RadioGroup\n var child = new AcroFormChildClass();\n child.Parent = this;\n child.optionName = name;\n // Add to Parent\n this.Kids.push(child);\n\n addField.call(this.scope, child);\n\n return child;\n};\n\n/**\n * @class AcroFormCheckBox\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormCheckBox = function() {\n AcroFormButton.call(this);\n\n this.fontName = \"zapfdingbats\";\n this.caption = \"3\";\n this.appearanceState = \"On\";\n this.value = \"On\";\n this.textAlign = \"center\";\n this.appearanceStreamContent = AcroFormAppearance.CheckBox.createAppearanceStream();\n};\ninherit(AcroFormCheckBox, AcroFormButton);\n\n/**\n * @class AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormTextField = function() {\n AcroFormField.call(this);\n this.FT = \"/Tx\";\n\n /**\n * If set, the field may contain multiple lines of text; if clear, the field’s text shall be restricted to a single line.\n *\n * @name AcroFormTextField#multiline\n * @type {boolean}\n */\n Object.defineProperty(this, \"multiline\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 13));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 13);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 13);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, the text entered in the field represents the pathname of a file whose contents shall be submitted as the value of the field.\n *\n * @name AcroFormTextField#fileSelect\n * @type {boolean}\n */\n Object.defineProperty(this, \"fileSelect\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 21));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 21);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 21);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, text entered in the field shall not be spell-checked.\n *\n * @name AcroFormTextField#doNotSpellCheck\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 23));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 23);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 23);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, the field shall not scroll (horizontally for single-line fields, vertically for multiple-line fields) to accommodate more text than fits within its annotation rectangle. Once the field is full, no further text shall be accepted for interactive form filling; for noninteractive form filling, the filler should take care not to add more character than will visibly fit in the defined area.\n *\n * @name AcroFormTextField#doNotScroll\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotScroll\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 24));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 24);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 24);\n }\n }\n });\n\n /**\n * (PDF 1.5) May be set only if the MaxLen entry is present in the text field dictionary (see Table 229) and if the Multiline, Password, and FileSelect flags are clear. If set, the field shall be automatically divided into as many equally spaced positions, or combs, as the value of MaxLen, and the text is laid out into those combs.\n *\n * @name AcroFormTextField#comb\n * @type {boolean}\n */\n Object.defineProperty(this, \"comb\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 25));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 25);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 25);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, the value of this field shall be a rich text string (see 12.7.3.4, “Rich Text Strings”). If the field has a value, the RV entry of the field dictionary (Table 222) shall specify the rich text string.\n *\n * @name AcroFormTextField#richText\n * @type {boolean}\n */\n Object.defineProperty(this, \"richText\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 26));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 26);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 26);\n }\n }\n });\n\n var _MaxLen = null;\n Object.defineProperty(this, \"MaxLen\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _MaxLen;\n },\n set: function(value) {\n _MaxLen = value;\n }\n });\n\n /**\n * (Optional; inheritable) The maximum length of the field’s text, in characters.\n *\n * @name AcroFormTextField#maxLength\n * @type {number}\n */\n Object.defineProperty(this, \"maxLength\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MaxLen;\n },\n set: function(value) {\n if (Number.isInteger(value)) {\n _MaxLen = value;\n }\n }\n });\n\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return this.V || this.DV;\n }\n });\n};\ninherit(AcroFormTextField, AcroFormField);\n\n/**\n * @class AcroFormPasswordField\n * @extends AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormPasswordField = function() {\n AcroFormTextField.call(this);\n\n /**\n * If set, the field is intended for entering a secure password that should not be echoed visibly to the screen. Characters typed from the keyboard shall instead be echoed in some unreadable form, such as asterisks or bullet characters.\n * NOTE To protect password confidentiality, readers should never store the value of the text field in the PDF file if this flag is set.\n *\n * @name AcroFormTextField#password\n * @type {boolean}\n */\n Object.defineProperty(this, \"password\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 14));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 14);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 14);\n }\n }\n });\n this.password = true;\n};\ninherit(AcroFormPasswordField, AcroFormTextField);\n\n// Contains Methods for creating standard appearances\nvar AcroFormAppearance = {\n CheckBox: {\n createAppearanceStream: function() {\n var appearance = {\n N: {\n On: AcroFormAppearance.CheckBox.YesNormal\n },\n D: {\n On: AcroFormAppearance.CheckBox.YesPushDown,\n Off: AcroFormAppearance.CheckBox.OffPushDown\n }\n };\n\n return appearance;\n },\n /**\n * Returns the standard On Appearance for a CheckBox\n *\n * @returns {AcroFormXObject}\n */\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var calcRes = calculateX(formObject, formObject.caption);\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n stream.push(\"BMC\");\n stream.push(\"q\");\n stream.push(\"0 0 1 rg\");\n stream.push(\n \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n );\n stream.push(\"BT\");\n stream.push(calcRes.text);\n stream.push(\"ET\");\n stream.push(\"Q\");\n stream.push(\"EMC\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var stream = [];\n var height = AcroFormAppearance.internal.getHeight(formObject);\n var width = AcroFormAppearance.internal.getWidth(formObject);\n var calcRes = calculateX(formObject, formObject.caption);\n stream.push(\"1 g\");\n stream.push(\"0 0 \" + f2(width) + \" \" + f2(height) + \" re\");\n stream.push(\"f\");\n stream.push(\"q\");\n stream.push(\"0 0 1 rg\");\n stream.push(\"0 0 \" + f2(width - 1) + \" \" + f2(height - 1) + \" re\");\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(\"0 g\");\n stream.push(\"BT\");\n stream.push(\n \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n );\n stream.push(calcRes.text);\n stream.push(\"ET\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n\n /**\n * Returns the standard Off Appearance for a CheckBox\n *\n * @returns {AcroFormXObject}\n */\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n },\n\n RadioButton: {\n Circle: {\n createAppearanceStream: function(name) {\n var appearanceStreamContent = {\n D: {\n Off: AcroFormAppearance.RadioButton.Circle.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] =\n AcroFormAppearance.RadioButton.Circle.YesNormal;\n appearanceStreamContent.D[name] =\n AcroFormAppearance.RadioButton.Circle.YesPushDown;\n return appearanceStreamContent;\n },\n getCA: function() {\n return \"l\";\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n // Make the Radius of the Circle relative to min(height, width) of formObject\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n var c = AcroFormAppearance.internal.Bezier_C;\n var DotRadiusBezier = Number((DotRadius * c).toFixed(5));\n /*\n * The Following is a Circle created with Bezier-Curves.\n */\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(DotRadius + \" 0 m\");\n stream.push(\n DotRadius +\n \" \" +\n DotRadiusBezier +\n \" \" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" 0 \" +\n DotRadius +\n \" c\"\n );\n stream.push(\n \"-\" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\n \"-\" +\n DotRadius +\n \" -\" +\n DotRadiusBezier +\n \" -\" +\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" 0 -\" +\n DotRadius +\n \" c\"\n );\n stream.push(\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n // Save results for later use; no need to waste\n // processor ticks on doing math\n var k = Number((DotRadius * 2).toFixed(5));\n var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n var dc = Number(\n (DotRadius * AcroFormAppearance.internal.Bezier_C).toFixed(5)\n );\n\n stream.push(\"0.749023 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(k + \" 0 m\");\n stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n stream.push(\n \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n );\n stream.push(\n \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n );\n stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n stream.push(\"f\");\n stream.push(\"Q\");\n stream.push(\"0 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(DotRadius + \" 0 m\");\n stream.push(\n \"\" +\n DotRadius +\n \" \" +\n dc +\n \" \" +\n dc +\n \" \" +\n DotRadius +\n \" 0 \" +\n DotRadius +\n \" c\"\n );\n stream.push(\n \"-\" +\n dc +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadius +\n \" \" +\n dc +\n \" -\" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\n \"-\" +\n DotRadius +\n \" -\" +\n dc +\n \" -\" +\n dc +\n \" -\" +\n DotRadius +\n \" 0 -\" +\n DotRadius +\n \" c\"\n );\n stream.push(\n dc +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadius +\n \" -\" +\n dc +\n \" \" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n // Save results for later use; no need to waste\n // processor ticks on doing math\n var k = Number((DotRadius * 2).toFixed(5));\n var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n\n stream.push(\"0.749023 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(k + \" 0 m\");\n stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n stream.push(\n \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n );\n stream.push(\n \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n );\n stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n },\n\n Cross: {\n /**\n * Creates the Actual AppearanceDictionary-References\n *\n * @param {string} name\n * @returns {Object}\n * @ignore\n */\n createAppearanceStream: function(name) {\n var appearanceStreamContent = {\n D: {\n Off: AcroFormAppearance.RadioButton.Cross.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] =\n AcroFormAppearance.RadioButton.Cross.YesNormal;\n appearanceStreamContent.D[name] =\n AcroFormAppearance.RadioButton.Cross.YesPushDown;\n return appearanceStreamContent;\n },\n getCA: function() {\n return \"8\";\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var cross = AcroFormAppearance.internal.calculateCross(formObject);\n stream.push(\"q\");\n stream.push(\n \"1 1 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n \" re\"\n );\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n stream.push(\"s\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var cross = AcroFormAppearance.internal.calculateCross(formObject);\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n stream.push(\"q\");\n stream.push(\n \"1 1 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n \" re\"\n );\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n stream.push(\"s\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n }\n },\n\n /**\n * Returns the standard Appearance\n *\n * @returns {AcroFormXObject}\n */\n createDefaultAppearanceStream: function(formObject) {\n // Set Helvetica to Standard Font (size: auto)\n // Color: Black\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var fontSize = formObject.fontSize;\n var result = \"/\" + fontKey + \" \" + fontSize + \" Tf \" + encodedColor;\n return result;\n }\n};\n\nAcroFormAppearance.internal = {\n Bezier_C: 0.551915024494,\n\n calculateCross: function(formObject) {\n var width = AcroFormAppearance.internal.getWidth(formObject);\n var height = AcroFormAppearance.internal.getHeight(formObject);\n var a = Math.min(width, height);\n\n var cross = {\n x1: {\n // upperLeft\n x: (width - a) / 2,\n y: (height - a) / 2 + a // height - borderPadding\n },\n x2: {\n // lowerRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 // borderPadding\n },\n x3: {\n // lowerLeft\n x: (width - a) / 2,\n y: (height - a) / 2 // borderPadding\n },\n x4: {\n // upperRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 + a // height - borderPadding\n }\n };\n\n return cross;\n }\n};\nAcroFormAppearance.internal.getWidth = function(formObject) {\n var result = 0;\n if (typeof formObject === \"object\") {\n result = scale(formObject.Rect[2]);\n }\n return result;\n};\nAcroFormAppearance.internal.getHeight = function(formObject) {\n var result = 0;\n if (typeof formObject === \"object\") {\n result = scale(formObject.Rect[3]);\n }\n return result;\n};\n\n// Public:\n\n/**\n * Add an AcroForm-Field to the jsPDF-instance\n *\n * @name addField\n * @function\n * @instance\n * @param {Object} fieldObject\n * @returns {jsPDF}\n */\nvar addField = (jsPDFAPI.addField = function(fieldObject) {\n initializeAcroForm(this, fieldObject);\n\n if (fieldObject instanceof AcroFormField) {\n putForm(fieldObject);\n } else {\n throw new Error(\"Invalid argument passed to jsPDF.addField.\");\n }\n fieldObject.page = fieldObject.scope.internal.getCurrentPageInfo().pageNumber;\n return this;\n});\n\njsPDFAPI.AcroFormChoiceField = AcroFormChoiceField;\njsPDFAPI.AcroFormListBox = AcroFormListBox;\njsPDFAPI.AcroFormComboBox = AcroFormComboBox;\njsPDFAPI.AcroFormEditBox = AcroFormEditBox;\njsPDFAPI.AcroFormButton = AcroFormButton;\njsPDFAPI.AcroFormPushButton = AcroFormPushButton;\njsPDFAPI.AcroFormRadioButton = AcroFormRadioButton;\njsPDFAPI.AcroFormCheckBox = AcroFormCheckBox;\njsPDFAPI.AcroFormTextField = AcroFormTextField;\njsPDFAPI.AcroFormPasswordField = AcroFormPasswordField;\njsPDFAPI.AcroFormAppearance = AcroFormAppearance;\n\njsPDFAPI.AcroForm = {\n ChoiceField: AcroFormChoiceField,\n ListBox: AcroFormListBox,\n ComboBox: AcroFormComboBox,\n EditBox: AcroFormEditBox,\n Button: AcroFormButton,\n PushButton: AcroFormPushButton,\n RadioButton: AcroFormRadioButton,\n CheckBox: AcroFormCheckBox,\n TextField: AcroFormTextField,\n PasswordField: AcroFormPasswordField,\n Appearance: AcroFormAppearance\n};\n\njsPDF.AcroForm = {\n ChoiceField: AcroFormChoiceField,\n ListBox: AcroFormListBox,\n ComboBox: AcroFormComboBox,\n EditBox: AcroFormEditBox,\n Button: AcroFormButton,\n PushButton: AcroFormPushButton,\n RadioButton: AcroFormRadioButton,\n CheckBox: AcroFormCheckBox,\n TextField: AcroFormTextField,\n PasswordField: AcroFormPasswordField,\n Appearance: AcroFormAppearance\n};\n\nvar AcroForm = jsPDF.AcroForm;\n\nexport {\n AcroForm,\n AcroFormChoiceField,\n AcroFormListBox,\n AcroFormComboBox,\n AcroFormEditBox,\n AcroFormButton,\n AcroFormPushButton,\n AcroFormRadioButton,\n AcroFormCheckBox,\n AcroFormTextField,\n AcroFormPasswordField,\n AcroFormAppearance\n};\n","function toLookup(arr) {\n return arr.reduce(function(lookup, name, index) {\n lookup[name] = index;\n\n return lookup;\n }, {});\n}\n\nvar fontStyleOrder = {\n italic: [\"italic\", \"oblique\", \"normal\"],\n oblique: [\"oblique\", \"italic\", \"normal\"],\n normal: [\"normal\", \"oblique\", \"italic\"]\n};\n\nvar fontStretchOrder = [\n \"ultra-condensed\",\n \"extra-condensed\",\n \"condensed\",\n \"semi-condensed\",\n \"normal\",\n \"semi-expanded\",\n \"expanded\",\n \"extra-expanded\",\n \"ultra-expanded\"\n];\n\n// For a given font-stretch value, we need to know where to start our search\n// from in the fontStretchOrder list.\nvar fontStretchLookup = toLookup(fontStretchOrder);\n\nvar fontWeights = [100, 200, 300, 400, 500, 600, 700, 800, 900];\nvar fontWeightsLookup = toLookup(fontWeights);\n\nfunction normalizeFontStretch(stretch) {\n stretch = stretch || \"normal\";\n\n return typeof fontStretchLookup[stretch] === \"number\" ? stretch : \"normal\";\n}\n\nfunction normalizeFontStyle(style) {\n style = style || \"normal\";\n\n return fontStyleOrder[style] ? style : \"normal\";\n}\n\nfunction normalizeFontWeight(weight) {\n if (!weight) {\n return 400;\n }\n\n if (typeof weight === \"number\") {\n // Ignore values which aren't valid font-weights.\n return weight >= 100 && weight <= 900 && weight % 100 === 0 ? weight : 400;\n }\n\n if (/^\\d00$/.test(weight)) {\n return parseInt(weight);\n }\n\n switch (weight) {\n case \"bold\":\n return 700;\n\n case \"normal\":\n default:\n return 400;\n }\n}\n\nexport function normalizeFontFace(fontFace) {\n var family = fontFace.family.replace(/\"|'/g, \"\").toLowerCase();\n\n var style = normalizeFontStyle(fontFace.style);\n var weight = normalizeFontWeight(fontFace.weight);\n var stretch = normalizeFontStretch(fontFace.stretch);\n\n return {\n family: family,\n style: style,\n weight: weight,\n stretch: stretch,\n src: fontFace.src || [],\n\n // The ref property maps this font-face to the font\n // added by the .addFont() method.\n ref: fontFace.ref || {\n name: family,\n style: [stretch, style, weight].join(\" \")\n }\n };\n}\n\n/**\n * Turns a list of font-faces into a map, for easier lookup when resolving\n * fonts.\n * @private\n */\nexport function buildFontFaceMap(fontFaces) {\n var map = {};\n\n for (var i = 0; i < fontFaces.length; ++i) {\n var normalized = normalizeFontFace(fontFaces[i]);\n\n var name = normalized.family;\n var stretch = normalized.stretch;\n var style = normalized.style;\n var weight = normalized.weight;\n\n map[name] = map[name] || {};\n\n map[name][stretch] = map[name][stretch] || {};\n map[name][stretch][style] = map[name][stretch][style] || {};\n map[name][stretch][style][weight] = normalized;\n }\n\n return map;\n}\n\n/**\n * Searches a map of stretches, weights, etc. in the given direction and\n * then, if no match has been found, in the opposite directions.\n *\n * @param {Object.} matchingSet A map of the various font variations.\n * @param {any[]} order The order of the different variations\n * @param {number} pivot The starting point of the search in the order list.\n * @param {number} dir The initial direction of the search (desc = -1, asc = 1)\n * @private\n */\n\nfunction searchFromPivot(matchingSet, order, pivot, dir) {\n var i;\n\n for (i = pivot; i >= 0 && i < order.length; i += dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n\n for (i = pivot; i >= 0 && i < order.length; i -= dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n}\n\nfunction resolveFontStretch(stretch, matchingSet) {\n if (matchingSet[stretch]) {\n return matchingSet[stretch];\n }\n\n var pivot = fontStretchLookup[stretch];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = pivot <= fontStretchLookup[\"normal\"] ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontStretchOrder, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-stretch value for \" + stretch\n );\n }\n\n return match;\n}\n\nfunction resolveFontStyle(fontStyle, matchingSet) {\n if (matchingSet[fontStyle]) {\n return matchingSet[fontStyle];\n }\n\n var ordering = fontStyleOrder[fontStyle];\n\n for (var i = 0; i < ordering.length; ++i) {\n if (matchingSet[ordering[i]]) {\n return matchingSet[ordering[i]];\n }\n }\n\n // Since a font-family cannot exist without having at least one style value\n // we should never reach this point.\n throw new Error(\"Could not find a matching font-style for \" + fontStyle);\n}\n\nfunction resolveFontWeight(weight, matchingSet) {\n if (matchingSet[weight]) {\n return matchingSet[weight];\n }\n\n if (weight === 400 && matchingSet[500]) {\n return matchingSet[500];\n }\n\n if (weight === 500 && matchingSet[400]) {\n return matchingSet[400];\n }\n\n var pivot = fontWeightsLookup[weight];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = weight < 400 ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontWeights, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-weight for value \" + weight\n );\n }\n\n return match;\n}\n\nvar defaultGenericFontFamilies = {\n \"sans-serif\": \"helvetica\",\n fixed: \"courier\",\n monospace: \"courier\",\n terminal: \"courier\",\n cursive: \"times\",\n fantasy: \"times\",\n serif: \"times\"\n};\n\nvar systemFonts = {\n caption: \"times\",\n icon: \"times\",\n menu: \"times\",\n \"message-box\": \"times\",\n \"small-caption\": \"times\",\n \"status-bar\": \"times\"\n};\n\nfunction ruleToString(rule) {\n return [rule.stretch, rule.style, rule.weight, rule.family].join(\" \");\n}\n\nexport function resolveFontFace(fontFaceMap, rules, opts) {\n opts = opts || {};\n\n var defaultFontFamily = opts.defaultFontFamily || \"times\";\n var genericFontFamilies = Object.assign(\n {},\n defaultGenericFontFamilies,\n opts.genericFontFamilies || {}\n );\n\n var rule = null;\n var matches = null;\n\n for (var i = 0; i < rules.length; ++i) {\n rule = normalizeFontFace(rules[i]);\n\n if (genericFontFamilies[rule.family]) {\n rule.family = genericFontFamilies[rule.family];\n }\n\n if (fontFaceMap.hasOwnProperty(rule.family)) {\n matches = fontFaceMap[rule.family];\n\n break;\n }\n }\n\n // Always fallback to a known font family.\n matches = matches || fontFaceMap[defaultFontFamily];\n\n if (!matches) {\n // At this point we should definitiely have a font family, but if we\n // don't there is something wrong with our configuration\n throw new Error(\n \"Could not find a font-family for the rule '\" +\n ruleToString(rule) +\n \"' and default family '\" +\n defaultFontFamily +\n \"'.\"\n );\n }\n\n matches = resolveFontStretch(rule.stretch, matches);\n matches = resolveFontStyle(rule.style, matches);\n matches = resolveFontWeight(rule.weight, matches);\n\n if (!matches) {\n // We should've fount\n throw new Error(\n \"Failed to resolve a font for the rule '\" + ruleToString(rule) + \"'.\"\n );\n }\n\n return matches;\n}\n\n/**\n * Builds a style id for use with the addFont() method.\n * @param {FontFace} font\n * @private\n */\nexport function toStyleName(font) {\n return [font.weight, font.style, font.stretch].join(\" \");\n}\n\nfunction eatWhiteSpace(input) {\n return input.trimLeft();\n}\n\nfunction parseQuotedFontFamily(input, quote) {\n var index = 0;\n\n while (index < input.length) {\n var current = input.charAt(index);\n\n if (current === quote) {\n return [input.substring(0, index), input.substring(index + 1)];\n }\n\n index += 1;\n }\n\n // Unexpected end of input\n return null;\n}\n\nfunction parseNonQuotedFontFamily(input) {\n // It implements part of the identifier parser here: https://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n //\n // NOTE: This parser pretty much ignores escaped identifiers and that there is a thing called unicode.\n //\n // Breakdown of regexp:\n // -[a-z_] - when identifier starts with a hyphen, you're not allowed to have another hyphen or a digit\n // [a-z_] - allow a-z and underscore at beginning of input\n // [a-z0-9_-]* - after that, anything goes\n var match = input.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);\n\n // non quoted value contains illegal characters\n if (match === null) {\n return null;\n }\n\n return [match[0], input.substring(match[0].length)];\n}\n\nvar defaultFont = [\"times\"];\n\nexport function parseFontFamily(input) {\n var result = [];\n var ch, parsed;\n var remaining = input.trim();\n\n if (remaining === \"\") {\n return defaultFont;\n }\n\n if (remaining in systemFonts) {\n return [systemFonts[remaining]];\n }\n\n while (remaining !== \"\") {\n parsed = null;\n remaining = eatWhiteSpace(remaining);\n ch = remaining.charAt(0);\n\n switch (ch) {\n case '\"':\n case \"'\":\n parsed = parseQuotedFontFamily(remaining.substring(1), ch);\n break;\n\n default:\n parsed = parseNonQuotedFontFamily(remaining);\n break;\n }\n\n if (parsed === null) {\n return defaultFont;\n }\n\n result.push(parsed[0]);\n\n remaining = eatWhiteSpace(parsed[1]);\n\n // We expect end of input or a comma separator here\n if (remaining !== \"\" && remaining.charAt(0) !== \",\") {\n return defaultFont;\n }\n\n remaining = remaining.replace(/^,/, \"\");\n }\n\n return result;\n}\n","/** @license\n * jsPDF addImage plugin\n * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/\n * 2013 Chris Dowling, https://github.com/gingerchris\n * 2013 Trinh Ho, https://github.com/ineedfat\n * 2013 Edwin Alejandro Perez, https://github.com/eaparango\n * 2013 Norah Smith, https://github.com/burnburnrocket\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n/**\n * @name addImage\n * @module\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob, btoa } from \"../libs/AtobBtoa.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namespace = \"addImage_\";\n jsPDFAPI.__addimage__ = {};\n\n var UNKNOWN = \"UNKNOWN\";\n\n // Heuristic selection of a good batch for large array .apply. Not limiting make the call overflow.\n // With too small batch iteration will be slow as more calls are made,\n // higher values cause larger and slower garbage collection.\n var ARRAY_APPLY_BATCH = 8192;\n\n var imageFileTypeHeaders = {\n PNG: [[0x89, 0x50, 0x4e, 0x47]],\n TIFF: [\n [0x4d, 0x4d, 0x00, 0x2a], //Motorola\n [0x49, 0x49, 0x2a, 0x00] //Intel\n ],\n JPEG: [\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe0,\n undefined,\n undefined,\n 0x4a,\n 0x46,\n 0x49,\n 0x46,\n 0x00\n ], //JFIF\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe1,\n undefined,\n undefined,\n 0x45,\n 0x78,\n 0x69,\n 0x66,\n 0x00,\n 0x00\n ], //Exif\n [0xff, 0xd8, 0xff, 0xdb], //JPEG RAW\n [0xff, 0xd8, 0xff, 0xee] //EXIF RAW\n ],\n JPEG2000: [[0x00, 0x00, 0x00, 0x0c, 0x6a, 0x50, 0x20, 0x20]],\n GIF87a: [[0x47, 0x49, 0x46, 0x38, 0x37, 0x61]],\n GIF89a: [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61]],\n WEBP: [\n [\n 0x52,\n 0x49,\n 0x46,\n 0x46,\n undefined,\n undefined,\n undefined,\n undefined,\n 0x57,\n 0x45,\n 0x42,\n 0x50\n ]\n ],\n BMP: [\n [0x42, 0x4d], //BM - Windows 3.1x, 95, NT, ... etc.\n [0x42, 0x41], //BA - OS/2 struct bitmap array\n [0x43, 0x49], //CI - OS/2 struct color icon\n [0x43, 0x50], //CP - OS/2 const color pointer\n [0x49, 0x43], //IC - OS/2 struct icon\n [0x50, 0x54] //PT - OS/2 pointer\n ]\n };\n\n /**\n * Recognize filetype of Image by magic-bytes\n *\n * https://en.wikipedia.org/wiki/List_of_file_signatures\n *\n * @name getImageFileTypeByImageData\n * @public\n * @function\n * @param {string|arraybuffer} imageData imageData as binary String or arraybuffer\n * @param {string} format format of file if filetype-recognition fails, e.g. 'JPEG'\n *\n * @returns {string} filetype of Image\n */\n var getImageFileTypeByImageData = (jsPDFAPI.__addimage__.getImageFileTypeByImageData = function(\n imageData,\n fallbackFormat\n ) {\n fallbackFormat = fallbackFormat || UNKNOWN;\n var i;\n var j;\n var result = UNKNOWN;\n var headerSchemata;\n var compareResult;\n var fileType;\n\n if (\n fallbackFormat === \"RGBA\" ||\n (imageData.data !== undefined &&\n imageData.data instanceof Uint8ClampedArray &&\n \"height\" in imageData &&\n \"width\" in imageData)\n ) {\n return \"RGBA\";\n }\n\n if (isArrayBufferView(imageData)) {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData[j]) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n } else {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData.charCodeAt(j)) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n }\n\n if (result === UNKNOWN && fallbackFormat !== UNKNOWN) {\n result = fallbackFormat;\n }\n return result;\n });\n\n // Image functionality ported from pdf.js\n var putImage = function(image) {\n var out = this.internal.write;\n var putStream = this.internal.putStream;\n var getFilters = this.internal.getFilters;\n\n var filter = getFilters();\n while (filter.indexOf(\"FlateEncode\") !== -1) {\n filter.splice(filter.indexOf(\"FlateEncode\"), 1);\n }\n\n image.objectId = this.internal.newObject();\n\n var additionalKeyValues = [];\n additionalKeyValues.push({ key: \"Type\", value: \"/XObject\" });\n additionalKeyValues.push({ key: \"Subtype\", value: \"/Image\" });\n additionalKeyValues.push({ key: \"Width\", value: image.width });\n additionalKeyValues.push({ key: \"Height\", value: image.height });\n\n if (image.colorSpace === color_spaces.INDEXED) {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value:\n \"[/Indexed /DeviceRGB \" +\n // if an indexed png defines more than one colour with transparency, we've created a sMask\n (image.palette.length / 3 - 1) +\n \" \" +\n (\"sMask\" in image && typeof image.sMask !== \"undefined\"\n ? image.objectId + 2\n : image.objectId + 1) +\n \" 0 R]\"\n });\n } else {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value: \"/\" + image.colorSpace\n });\n if (image.colorSpace === color_spaces.DEVICE_CMYK) {\n additionalKeyValues.push({ key: \"Decode\", value: \"[1 0 1 0 1 0 1 0]\" });\n }\n }\n additionalKeyValues.push({\n key: \"BitsPerComponent\",\n value: image.bitsPerComponent\n });\n if (\n \"decodeParameters\" in image &&\n typeof image.decodeParameters !== \"undefined\"\n ) {\n additionalKeyValues.push({\n key: \"DecodeParms\",\n value: \"<<\" + image.decodeParameters + \">>\"\n });\n }\n if (\"transparency\" in image && Array.isArray(image.transparency)) {\n var transparency = \"\",\n i = 0,\n len = image.transparency.length;\n for (; i < len; i++)\n transparency +=\n image.transparency[i] + \" \" + image.transparency[i] + \" \";\n\n additionalKeyValues.push({\n key: \"Mask\",\n value: \"[\" + transparency + \"]\"\n });\n }\n if (typeof image.sMask !== \"undefined\") {\n additionalKeyValues.push({\n key: \"SMask\",\n value: image.objectId + 1 + \" 0 R\"\n });\n }\n\n var alreadyAppliedFilters =\n typeof image.filter !== \"undefined\" ? [\"/\" + image.filter] : undefined;\n\n putStream({\n data: image.data,\n additionalKeyValues: additionalKeyValues,\n alreadyAppliedFilters: alreadyAppliedFilters,\n objectId: image.objectId\n });\n\n out(\"endobj\");\n\n // Soft mask\n if (\"sMask\" in image && typeof image.sMask !== \"undefined\") {\n var decodeParameters =\n \"/Predictor \" +\n image.predictor +\n \" /Colors 1 /BitsPerComponent \" +\n image.bitsPerComponent +\n \" /Columns \" +\n image.width;\n var sMask = {\n width: image.width,\n height: image.height,\n colorSpace: \"DeviceGray\",\n bitsPerComponent: image.bitsPerComponent,\n decodeParameters: decodeParameters,\n data: image.sMask\n };\n if (\"filter\" in image) {\n sMask.filter = image.filter;\n }\n putImage.call(this, sMask);\n }\n\n //Palette\n if (image.colorSpace === color_spaces.INDEXED) {\n var objId = this.internal.newObject();\n //out('<< /Filter / ' + img['f'] +' /Length ' + img['pal'].length + '>>');\n //putStream(zlib.compress(img['pal']));\n putStream({\n data: arrayBufferToBinaryString(new Uint8Array(image.palette)),\n objectId: objId\n });\n out(\"endobj\");\n }\n };\n var putResourcesCallback = function() {\n var images = this.internal.collections[namespace + \"images\"];\n for (var i in images) {\n putImage.call(this, images[i]);\n }\n };\n var putXObjectsDictCallback = function() {\n var images = this.internal.collections[namespace + \"images\"],\n out = this.internal.write,\n image;\n for (var i in images) {\n image = images[i];\n out(\"/I\" + image.index, image.objectId, \"0\", \"R\");\n }\n };\n\n var checkCompressValue = function(value) {\n if (value && typeof value === \"string\") value = value.toUpperCase();\n return value in jsPDFAPI.image_compression ? value : image_compression.NONE;\n };\n\n var initialize = function() {\n if (!this.internal.collections[namespace + \"images\"]) {\n this.internal.collections[namespace + \"images\"] = {};\n this.internal.events.subscribe(\"putResources\", putResourcesCallback);\n this.internal.events.subscribe(\"putXobjectDict\", putXObjectsDictCallback);\n }\n };\n\n var getImages = function() {\n var images = this.internal.collections[namespace + \"images\"];\n initialize.call(this);\n return images;\n };\n var getImageIndex = function() {\n return Object.keys(this.internal.collections[namespace + \"images\"]).length;\n };\n var notDefined = function(value) {\n return typeof value === \"undefined\" || value === null || value.length === 0;\n };\n var generateAliasFromImageData = function(imageData) {\n if (typeof imageData === \"string\" || isArrayBufferView(imageData)) {\n return sHashCode(imageData);\n } else if (isArrayBufferView(imageData.data)) {\n return sHashCode(imageData.data);\n }\n\n return null;\n };\n\n var isImageTypeSupported = function(type) {\n return typeof jsPDFAPI[\"process\" + type.toUpperCase()] === \"function\";\n };\n\n var isDOMElement = function(object) {\n return typeof object === \"object\" && object.nodeType === 1;\n };\n\n var getImageDataFromElement = function(element, format) {\n //if element is an image which uses data url definition, just return the dataurl\n if (element.nodeName === \"IMG\" && element.hasAttribute(\"src\")) {\n var src = \"\" + element.getAttribute(\"src\");\n\n //is base64 encoded dataUrl, directly process it\n if (src.indexOf(\"data:image/\") === 0) {\n return atob(\n unescape(src)\n .split(\"base64,\")\n .pop()\n );\n }\n\n //it is probably an url, try to load it\n var tmpImageData = jsPDFAPI.loadFile(src, true);\n if (tmpImageData !== undefined) {\n return tmpImageData;\n }\n }\n\n if (element.nodeName === \"CANVAS\") {\n if (element.width === 0 || element.height === 0) {\n throw new Error(\n \"Given canvas must have data. Canvas width: \" +\n element.width +\n \", height: \" +\n element.height\n );\n }\n var mimeType;\n switch (format) {\n case \"PNG\":\n mimeType = \"image/png\";\n break;\n case \"WEBP\":\n mimeType = \"image/webp\";\n break;\n case \"JPEG\":\n case \"JPG\":\n default:\n mimeType = \"image/jpeg\";\n break;\n }\n return atob(\n element\n .toDataURL(mimeType, 1.0)\n .split(\"base64,\")\n .pop()\n );\n }\n };\n\n var checkImagesForAlias = function(alias) {\n var images = this.internal.collections[namespace + \"images\"];\n if (images) {\n for (var e in images) {\n if (alias === images[e].alias) {\n return images[e];\n }\n }\n }\n };\n\n var determineWidthAndHeight = function(width, height, image) {\n if (!width && !height) {\n width = -96;\n height = -96;\n }\n if (width < 0) {\n width = (-1 * image.width * 72) / width / this.internal.scaleFactor;\n }\n if (height < 0) {\n height = (-1 * image.height * 72) / height / this.internal.scaleFactor;\n }\n if (width === 0) {\n width = (height * image.width) / image.height;\n }\n if (height === 0) {\n height = (width * image.height) / image.width;\n }\n\n return [width, height];\n };\n\n var writeImageToPDF = function(x, y, width, height, image, rotation) {\n var dims = determineWidthAndHeight.call(this, width, height, image),\n coord = this.internal.getCoordinateString,\n vcoord = this.internal.getVerticalCoordinateString;\n\n var images = getImages.call(this);\n\n width = dims[0];\n height = dims[1];\n images[image.index] = image;\n\n if (rotation) {\n rotation *= Math.PI / 180;\n var c = Math.cos(rotation);\n var s = Math.sin(rotation);\n //like in pdf Reference do it 4 digits instead of 2\n var f4 = function(number) {\n return number.toFixed(4);\n };\n var rotationTransformationMatrix = [\n f4(c),\n f4(s),\n f4(s * -1),\n f4(c),\n 0,\n 0,\n \"cm\"\n ];\n }\n this.internal.write(\"q\"); //Save graphics state\n if (rotation) {\n this.internal.write(\n [1, \"0\", \"0\", 1, coord(x), vcoord(y + height), \"cm\"].join(\" \")\n ); //Translate\n this.internal.write(rotationTransformationMatrix.join(\" \")); //Rotate\n this.internal.write(\n [coord(width), \"0\", \"0\", coord(height), \"0\", \"0\", \"cm\"].join(\" \")\n ); //Scale\n } else {\n this.internal.write(\n [\n coord(width),\n \"0\",\n \"0\",\n coord(height),\n coord(x),\n vcoord(y + height),\n \"cm\"\n ].join(\" \")\n ); //Translate and Scale\n }\n\n if (this.isAdvancedAPI()) {\n // draw image bottom up when in \"advanced\" API mode\n this.internal.write([1, 0, 0, -1, 0, 0, \"cm\"].join(\" \"));\n }\n\n this.internal.write(\"/I\" + image.index + \" Do\"); //Paint Image\n this.internal.write(\"Q\"); //Restore graphics state\n };\n\n /**\n * COLOR SPACES\n */\n var color_spaces = (jsPDFAPI.color_spaces = {\n DEVICE_RGB: \"DeviceRGB\",\n DEVICE_GRAY: \"DeviceGray\",\n DEVICE_CMYK: \"DeviceCMYK\",\n CAL_GREY: \"CalGray\",\n CAL_RGB: \"CalRGB\",\n LAB: \"Lab\",\n ICC_BASED: \"ICCBased\",\n INDEXED: \"Indexed\",\n PATTERN: \"Pattern\",\n SEPARATION: \"Separation\",\n DEVICE_N: \"DeviceN\"\n });\n\n /**\n * DECODE METHODS\n */\n jsPDFAPI.decode = {\n DCT_DECODE: \"DCTDecode\",\n FLATE_DECODE: \"FlateDecode\",\n LZW_DECODE: \"LZWDecode\",\n JPX_DECODE: \"JPXDecode\",\n JBIG2_DECODE: \"JBIG2Decode\",\n ASCII85_DECODE: \"ASCII85Decode\",\n ASCII_HEX_DECODE: \"ASCIIHexDecode\",\n RUN_LENGTH_DECODE: \"RunLengthDecode\",\n CCITT_FAX_DECODE: \"CCITTFaxDecode\"\n };\n\n /**\n * IMAGE COMPRESSION TYPES\n */\n var image_compression = (jsPDFAPI.image_compression = {\n NONE: \"NONE\",\n FAST: \"FAST\",\n MEDIUM: \"MEDIUM\",\n SLOW: \"SLOW\"\n });\n\n /**\n * @name sHashCode\n * @function\n * @param {string} data\n * @returns {string}\n */\n var sHashCode = (jsPDFAPI.__addimage__.sHashCode = function(data) {\n var hash = 0,\n i,\n len;\n\n if (typeof data === \"string\") {\n len = data.length;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n } else if (isArrayBufferView(data)) {\n len = data.byteLength / 2;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data[i];\n hash |= 0; // Convert to 32bit integer\n }\n }\n return hash;\n });\n\n /**\n * Validates if given String is a valid Base64-String\n *\n * @name validateStringAsBase64\n * @public\n * @function\n * @param {String} possible Base64-String\n *\n * @returns {boolean}\n */\n var validateStringAsBase64 = (jsPDFAPI.__addimage__.validateStringAsBase64 = function(\n possibleBase64String\n ) {\n possibleBase64String = possibleBase64String || \"\";\n possibleBase64String.toString().trim();\n\n var result = true;\n\n if (possibleBase64String.length === 0) {\n result = false;\n }\n\n if (possibleBase64String.length % 4 !== 0) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9+/]+$/.test(\n possibleBase64String.substr(0, possibleBase64String.length - 2)\n ) === false\n ) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(\n possibleBase64String.substr(-2)\n ) === false\n ) {\n result = false;\n }\n return result;\n });\n\n /**\n * Strips out and returns info from a valid base64 data URI\n *\n * @name extractImageFromDataUrl\n * @function\n * @param {string} dataUrl a valid data URI of format 'data:[][;base64],'\n * @returns {Array}an Array containing the following\n * [0] the complete data URI\n * [1] \n * [2] format - the second part of the mime-type i.e 'png' in 'image/png'\n * [4] \n */\n var extractImageFromDataUrl = (jsPDFAPI.__addimage__.extractImageFromDataUrl = function(\n dataUrl\n ) {\n dataUrl = dataUrl || \"\";\n var dataUrlParts = dataUrl.split(\"base64,\");\n var result = null;\n\n if (dataUrlParts.length === 2) {\n var extractedInfo = /^data:(\\w*\\/\\w*);*(charset=(?!charset=)[\\w=-]*)*;*$/.exec(\n dataUrlParts[0]\n );\n if (Array.isArray(extractedInfo)) {\n result = {\n mimeType: extractedInfo[1],\n charset: extractedInfo[2],\n data: dataUrlParts[1]\n };\n }\n }\n return result;\n });\n\n /**\n * Check to see if ArrayBuffer is supported\n *\n * @name supportsArrayBuffer\n * @function\n * @returns {boolean}\n */\n var supportsArrayBuffer = (jsPDFAPI.__addimage__.supportsArrayBuffer = function() {\n return (\n typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\"\n );\n });\n\n /**\n * Tests supplied object to determine if ArrayBuffer\n *\n * @name isArrayBuffer\n * @function\n * @param {Object} object an Object\n *\n * @returns {boolean}\n */\n jsPDFAPI.__addimage__.isArrayBuffer = function(object) {\n return supportsArrayBuffer() && object instanceof ArrayBuffer;\n };\n\n /**\n * Tests supplied object to determine if it implements the ArrayBufferView (TypedArray) interface\n *\n * @name isArrayBufferView\n * @function\n * @param {Object} object an Object\n * @returns {boolean}\n */\n var isArrayBufferView = (jsPDFAPI.__addimage__.isArrayBufferView = function(\n object\n ) {\n return (\n supportsArrayBuffer() &&\n typeof Uint32Array !== \"undefined\" &&\n (object instanceof Int8Array ||\n object instanceof Uint8Array ||\n (typeof Uint8ClampedArray !== \"undefined\" &&\n object instanceof Uint8ClampedArray) ||\n object instanceof Int16Array ||\n object instanceof Uint16Array ||\n object instanceof Int32Array ||\n object instanceof Uint32Array ||\n object instanceof Float32Array ||\n object instanceof Float64Array)\n );\n });\n\n /**\n * Convert Binary String to ArrayBuffer\n *\n * @name binaryStringToUint8Array\n * @public\n * @function\n * @param {string} BinaryString with ImageData\n * @returns {Uint8Array}\n */\n var binaryStringToUint8Array = (jsPDFAPI.__addimage__.binaryStringToUint8Array = function(\n binary_string\n ) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n });\n\n /**\n * Convert the Buffer to a Binary String\n *\n * @name arrayBufferToBinaryString\n * @public\n * @function\n * @param {ArrayBuffer|ArrayBufferView} ArrayBuffer buffer or bufferView with ImageData\n *\n * @returns {String}\n */\n var arrayBufferToBinaryString = (jsPDFAPI.__addimage__.arrayBufferToBinaryString = function(\n buffer\n ) {\n var out = \"\";\n // There are calls with both ArrayBuffer and already converted Uint8Array or other BufferView.\n // Do not copy the array if input is already an array.\n var buf = isArrayBufferView(buffer) ? buffer : new Uint8Array(buffer);\n for (var i = 0; i < buf.length; i += ARRAY_APPLY_BATCH) {\n // Limit the amount of characters being parsed to prevent overflow.\n // Note that while TextDecoder would be faster, it does not have the same\n // functionality as fromCharCode with any provided encodings as of 3/2021.\n out += String.fromCharCode.apply(\n null,\n buf.subarray(i, i + ARRAY_APPLY_BATCH)\n );\n }\n return out;\n });\n\n /**\n * Possible parameter for addImage, an RGBA buffer with size.\n *\n * @typedef {Object} RGBAData\n * @property {Uint8ClampedArray} data - Single dimensional array of RGBA values. For example from canvas getImageData.\n * @property {number} width - Image width as the data does not carry this information in itself.\n * @property {number} height - Image height as the data does not carry this information in itself.\n */\n\n /**\n * Adds an Image to the PDF.\n *\n * @name addImage\n * @public\n * @function\n * @param {string|HTMLImageElement|HTMLCanvasElement|Uint8Array|RGBAData} imageData imageData as base64 encoded DataUrl or Image-HTMLElement or Canvas-HTMLElement or object containing RGBA array (like output from canvas.getImageData).\n * @param {string} format format of file if filetype-recognition fails or in case of a Canvas-Element needs to be specified (default for Canvas is JPEG), e.g. 'JPEG', 'PNG', 'WEBP'\n * @param {number} x x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width width of the image (in units declared at inception of PDF document)\n * @param {number} height height of the Image (in units declared at inception of PDF document)\n * @param {string} alias alias of the image (if used multiple times)\n * @param {string} compression compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation rotation of the image in degrees (0-359)\n *\n * @returns jsPDF\n */\n jsPDFAPI.addImage = function() {\n var imageData, format, x, y, w, h, alias, compression, rotation;\n\n imageData = arguments[0];\n if (typeof arguments[1] === \"number\") {\n format = UNKNOWN;\n x = arguments[1];\n y = arguments[2];\n w = arguments[3];\n h = arguments[4];\n alias = arguments[5];\n compression = arguments[6];\n rotation = arguments[7];\n } else {\n format = arguments[1];\n x = arguments[2];\n y = arguments[3];\n w = arguments[4];\n h = arguments[5];\n alias = arguments[6];\n compression = arguments[7];\n rotation = arguments[8];\n }\n\n if (\n typeof imageData === \"object\" &&\n !isDOMElement(imageData) &&\n \"imageData\" in imageData\n ) {\n var options = imageData;\n\n imageData = options.imageData;\n format = options.format || format || UNKNOWN;\n x = options.x || x || 0;\n y = options.y || y || 0;\n w = options.w || options.width || w;\n h = options.h || options.height || h;\n alias = options.alias || alias;\n compression = options.compression || compression;\n rotation = options.rotation || options.angle || rotation;\n }\n\n //If compression is not explicitly set, determine if we should use compression\n var filter = this.internal.getFilters();\n if (compression === undefined && filter.indexOf(\"FlateEncode\") !== -1) {\n compression = \"SLOW\";\n }\n\n if (isNaN(x) || isNaN(y)) {\n throw new Error(\"Invalid coordinates passed to jsPDF.addImage\");\n }\n\n initialize.call(this);\n\n var image = processImageData.call(\n this,\n imageData,\n format,\n alias,\n compression\n );\n\n writeImageToPDF.call(this, x, y, w, h, image, rotation);\n\n return this;\n };\n\n var processImageData = function(imageData, format, alias, compression) {\n var result, dataAsBinaryString;\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n imageData = unescape(imageData);\n var tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData !== \"\") {\n imageData = tmpImageData;\n } else {\n tmpImageData = jsPDFAPI.loadFile(imageData, true);\n if (tmpImageData !== undefined) {\n imageData = tmpImageData;\n }\n }\n }\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData, format);\n }\n\n format = getImageFileTypeByImageData(imageData, format);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n // now do the heavy lifting\n\n if (notDefined(alias)) {\n alias = generateAliasFromImageData(imageData);\n }\n result = checkImagesForAlias.call(this, alias);\n\n if (!result) {\n if (supportsArrayBuffer()) {\n // no need to convert if imageData is already uint8array\n if (!(imageData instanceof Uint8Array) && format !== \"RGBA\") {\n dataAsBinaryString = imageData;\n imageData = binaryStringToUint8Array(imageData);\n }\n }\n\n result = this[\"process\" + format.toUpperCase()](\n imageData,\n getImageIndex.call(this),\n alias,\n checkCompressValue(compression),\n dataAsBinaryString\n );\n }\n\n if (!result) {\n throw new Error(\"An unknown error occurred whilst processing the image.\");\n }\n return result;\n };\n\n /**\n * @name convertBase64ToBinaryString\n * @function\n * @param {string} stringData\n * @returns {string} binary string\n */\n var convertBase64ToBinaryString = (jsPDFAPI.__addimage__.convertBase64ToBinaryString = function(\n stringData,\n throwError\n ) {\n throwError = typeof throwError === \"boolean\" ? throwError : true;\n var base64Info;\n var imageData = \"\";\n var rawData;\n\n if (typeof stringData === \"string\") {\n base64Info = extractImageFromDataUrl(stringData);\n rawData = base64Info !== null ? base64Info.data : stringData;\n\n try {\n imageData = atob(rawData);\n } catch (e) {\n if (throwError) {\n if (!validateStringAsBase64(rawData)) {\n throw new Error(\n \"Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString \"\n );\n } else {\n throw new Error(\n \"atob-Error in jsPDF.convertBase64ToBinaryString \" + e.message\n );\n }\n }\n }\n }\n return imageData;\n });\n\n /**\n * @name getImageProperties\n * @function\n * @param {Object} imageData\n * @returns {Object}\n */\n jsPDFAPI.getImageProperties = function(imageData) {\n var image;\n var tmpImageData = \"\";\n var format;\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData);\n }\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData === \"\") {\n tmpImageData = jsPDFAPI.loadFile(imageData) || \"\";\n }\n imageData = tmpImageData;\n }\n\n format = getImageFileTypeByImageData(imageData);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n if (supportsArrayBuffer() && !(imageData instanceof Uint8Array)) {\n imageData = binaryStringToUint8Array(imageData);\n }\n\n image = this[\"process\" + format.toUpperCase()](imageData);\n\n if (!image) {\n throw new Error(\"An unknown error occurred whilst processing the image\");\n }\n\n image.fileType = format;\n\n return image;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF Annotations PlugIn\n *\n * There are many types of annotations in a PDF document. Annotations are placed\n * on a page at a particular location. They are not 'attached' to an object.\n *
\n * This plugin current supports
\n *
  • Goto Page (set pageNumber and top in options)\n *
  • Goto Name (set name and top in options)\n *
  • Goto URL (set url in options)\n *

    \n * \tThe destination magnification factor can also be specified when goto is a page number or a named destination. (see documentation below)\n * (set magFactor in options). XYZ is the default.\n *

    \n *

    \n * Links, Text, Popup, and FreeText are supported.\n *

    \n *

    \n * Options In PDF spec Not Implemented Yet\n *

  • link border\n *
  • named target\n *
  • page coordinates\n *
  • destination page scaling and layout\n *
  • actions other than URL and GotoPage\n *
  • background / hover actions\n *

    \n * @name annotations\n * @module\n */\n\n/*\n Destination Magnification Factors\n See PDF 1.3 Page 386 for meanings and options\n\n [supported]\n\tXYZ (options; left top zoom)\n\tFit (no options)\n\tFitH (options: top)\n\tFitV (options: left)\n\n\t[not supported]\n\tFitR\n\tFitB\n\tFitBH\n\tFitBV\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var notEmpty = function(obj) {\n if (typeof obj != \"undefined\") {\n if (obj != \"\") {\n return true;\n }\n }\n };\n\n jsPDF.API.events.push([\n \"addPage\",\n function(addPageData) {\n var pageInfo = this.internal.getPageInfo(addPageData.pageNumber);\n pageInfo.pageContext.annotations = [];\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putPage\",\n function(putPageData) {\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal\n .getVerticalCoordinateString;\n var pageInfo = this.internal.getPageInfoByObjId(putPageData.objId);\n var pageAnnos = putPageData.pageContext.annotations;\n\n var anno, rect, line;\n var found = false;\n for (var a = 0; a < pageAnnos.length && !found; a++) {\n anno = pageAnnos[a];\n switch (anno.type) {\n case \"link\":\n if (\n notEmpty(anno.options.url) ||\n notEmpty(anno.options.pageNumber)\n ) {\n found = true;\n }\n break;\n case \"reference\":\n case \"text\":\n case \"freetext\":\n found = true;\n break;\n }\n }\n if (found == false) {\n return;\n }\n\n this.internal.write(\"/Annots [\");\n for (var i = 0; i < pageAnnos.length; i++) {\n anno = pageAnnos[i];\n var escape = this.internal.pdfEscape;\n var encryptor = this.internal.getEncryptor(putPageData.objId);\n\n switch (anno.type) {\n case \"reference\":\n // References to Widget Annotations (for AcroForm Fields)\n this.internal.write(\" \" + anno.object.objId + \" 0 R \");\n break;\n case \"text\":\n // Create a an object for both the text and the popup\n var objText = this.internal.newAdditionalObject();\n var objPopup = this.internal.newAdditionalObject();\n var encryptorText = this.internal.getEncryptor(objText.objId);\n\n var title = anno.title || \"Note\";\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \" \" +\n getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \"] \";\n\n line =\n \"<>\";\n objText.content = line;\n\n var parent = objText.objId + \" 0 R\";\n var popoff = 30;\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x + popoff) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \" \" +\n getHorizontalCoordinateString(\n anno.bounds.x + anno.bounds.w + popoff\n ) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \"] \";\n line =\n \"<>\";\n objPopup.content = line;\n\n this.internal.write(objText.objId, \"0 R\", objPopup.objId, \"0 R\");\n\n break;\n case \"freetext\":\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \" \" +\n getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \"] \";\n var color = anno.color || \"#000000\";\n line =\n \"<>\";\n this.internal.write(line);\n break;\n case \"link\":\n if (anno.options.name) {\n var loc = this.annotations._nameMap[anno.options.name];\n anno.options.pageNumber = loc.page;\n anno.options.top = loc.y;\n } else {\n if (!anno.options.top) {\n anno.options.top = 0;\n }\n }\n\n rect =\n \"/Rect [\" +\n anno.finalBounds.x +\n \" \" +\n anno.finalBounds.y +\n \" \" +\n anno.finalBounds.w +\n \" \" +\n anno.finalBounds.h +\n \"] \";\n\n line = \"\";\n if (anno.options.url) {\n line =\n \"<>\";\n } else if (anno.options.pageNumber) {\n // first page is 0\n var info = this.internal.getPageInfo(anno.options.pageNumber);\n line =\n \"<>\";\n this.internal.write(line);\n }\n break;\n }\n }\n this.internal.write(\"]\");\n }\n ]);\n\n /**\n * @name createAnnotation\n * @function\n * @param {Object} options\n */\n jsPDFAPI.createAnnotation = function(options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n switch (options.type) {\n case \"link\":\n this.link(\n options.bounds.x,\n options.bounds.y,\n options.bounds.w,\n options.bounds.h,\n options\n );\n break;\n case \"text\":\n case \"freetext\":\n pageInfo.pageContext.annotations.push(options);\n break;\n }\n };\n\n /**\n * Create a link\n *\n * valid options\n *
  • pageNumber or url [required]\n *

    If pageNumber is specified, top and zoom may also be specified

    \n * @name link\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {Object} options\n */\n jsPDFAPI.link = function(x, y, w, h, options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\n\n pageInfo.pageContext.annotations.push({\n finalBounds: {\n x: getHorizontalCoordinateString(x),\n y: getVerticalCoordinateString(y),\n w: getHorizontalCoordinateString(x + w),\n h: getVerticalCoordinateString(y + h)\n },\n options: options,\n type: \"link\"\n });\n };\n\n /**\n * Currently only supports single line text.\n * Returns the width of the text/link\n *\n * @name textWithLink\n * @function\n * @param {string} text\n * @param {number} x\n * @param {number} y\n * @param {Object} options\n * @returns {number} width the width of the text/link\n */\n jsPDFAPI.textWithLink = function(text, x, y, options) {\n var totalLineWidth = this.getTextWidth(text);\n var lineHeight = this.internal.getLineHeight() / this.internal.scaleFactor;\n var linkHeight, linkWidth;\n\n // Checking if maxWidth option is passed to determine lineWidth and number of lines for each line\n if (options.maxWidth !== undefined) {\n var { maxWidth } = options;\n linkWidth = maxWidth;\n var numOfLines = this.splitTextToSize(text, linkWidth).length;\n linkHeight = Math.ceil(lineHeight * numOfLines);\n } else {\n linkWidth = totalLineWidth;\n linkHeight = lineHeight;\n }\n\n this.text(text, x, y, options);\n\n //TODO We really need the text baseline height to do this correctly.\n // Or ability to draw text on top, bottom, center, or baseline.\n y += lineHeight * 0.2;\n //handle x position based on the align option\n if (options.align === \"center\") {\n x = x - totalLineWidth / 2; //since starting from center move the x position by half of text width\n }\n if (options.align === \"right\") {\n x = x - totalLineWidth;\n }\n this.link(x, y - lineHeight, linkWidth, linkHeight, options);\n return totalLineWidth;\n };\n\n //TODO move into external library\n /**\n * @name getTextWidth\n * @function\n * @param {string} text\n * @returns {number} txtWidth\n */\n jsPDFAPI.getTextWidth = function(text) {\n var fontSize = this.internal.getFontSize();\n var txtWidth =\n (this.getStringUnitWidth(text) * fontSize) / this.internal.scaleFactor;\n return txtWidth;\n };\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF arabic parser PlugIn\n *\n * @name arabic\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Arabic shape substitutions: char code => (isolated, final, initial, medial).\n * Arabic Substition A\n */\n var arabicSubstitionA = {\n 0x0621: [0xfe80], // ARABIC LETTER HAMZA\n 0x0622: [0xfe81, 0xfe82], // ARABIC LETTER ALEF WITH MADDA ABOVE\n 0x0623: [0xfe83, 0xfe84], // ARABIC LETTER ALEF WITH HAMZA ABOVE\n 0x0624: [0xfe85, 0xfe86], // ARABIC LETTER WAW WITH HAMZA ABOVE\n 0x0625: [0xfe87, 0xfe88], // ARABIC LETTER ALEF WITH HAMZA BELOW\n 0x0626: [0xfe89, 0xfe8a, 0xfe8b, 0xfe8c], // ARABIC LETTER YEH WITH HAMZA ABOVE\n 0x0627: [0xfe8d, 0xfe8e], // ARABIC LETTER ALEF\n 0x0628: [0xfe8f, 0xfe90, 0xfe91, 0xfe92], // ARABIC LETTER BEH\n 0x0629: [0xfe93, 0xfe94], // ARABIC LETTER TEH MARBUTA\n 0x062a: [0xfe95, 0xfe96, 0xfe97, 0xfe98], // ARABIC LETTER TEH\n 0x062b: [0xfe99, 0xfe9a, 0xfe9b, 0xfe9c], // ARABIC LETTER THEH\n 0x062c: [0xfe9d, 0xfe9e, 0xfe9f, 0xfea0], // ARABIC LETTER JEEM\n 0x062d: [0xfea1, 0xfea2, 0xfea3, 0xfea4], // ARABIC LETTER HAH\n 0x062e: [0xfea5, 0xfea6, 0xfea7, 0xfea8], // ARABIC LETTER KHAH\n 0x062f: [0xfea9, 0xfeaa], // ARABIC LETTER DAL\n 0x0630: [0xfeab, 0xfeac], // ARABIC LETTER THAL\n 0x0631: [0xfead, 0xfeae], // ARABIC LETTER REH\n 0x0632: [0xfeaf, 0xfeb0], // ARABIC LETTER ZAIN\n 0x0633: [0xfeb1, 0xfeb2, 0xfeb3, 0xfeb4], // ARABIC LETTER SEEN\n 0x0634: [0xfeb5, 0xfeb6, 0xfeb7, 0xfeb8], // ARABIC LETTER SHEEN\n 0x0635: [0xfeb9, 0xfeba, 0xfebb, 0xfebc], // ARABIC LETTER SAD\n 0x0636: [0xfebd, 0xfebe, 0xfebf, 0xfec0], // ARABIC LETTER DAD\n 0x0637: [0xfec1, 0xfec2, 0xfec3, 0xfec4], // ARABIC LETTER TAH\n 0x0638: [0xfec5, 0xfec6, 0xfec7, 0xfec8], // ARABIC LETTER ZAH\n 0x0639: [0xfec9, 0xfeca, 0xfecb, 0xfecc], // ARABIC LETTER AIN\n 0x063a: [0xfecd, 0xfece, 0xfecf, 0xfed0], // ARABIC LETTER GHAIN\n 0x0641: [0xfed1, 0xfed2, 0xfed3, 0xfed4], // ARABIC LETTER FEH\n 0x0642: [0xfed5, 0xfed6, 0xfed7, 0xfed8], // ARABIC LETTER QAF\n 0x0643: [0xfed9, 0xfeda, 0xfedb, 0xfedc], // ARABIC LETTER KAF\n 0x0644: [0xfedd, 0xfede, 0xfedf, 0xfee0], // ARABIC LETTER LAM\n 0x0645: [0xfee1, 0xfee2, 0xfee3, 0xfee4], // ARABIC LETTER MEEM\n 0x0646: [0xfee5, 0xfee6, 0xfee7, 0xfee8], // ARABIC LETTER NOON\n 0x0647: [0xfee9, 0xfeea, 0xfeeb, 0xfeec], // ARABIC LETTER HEH\n 0x0648: [0xfeed, 0xfeee], // ARABIC LETTER WAW\n 0x0649: [0xfeef, 0xfef0, 64488, 64489], // ARABIC LETTER ALEF MAKSURA\n 0x064a: [0xfef1, 0xfef2, 0xfef3, 0xfef4], // ARABIC LETTER YEH\n 0x0671: [0xfb50, 0xfb51], // ARABIC LETTER ALEF WASLA\n 0x0677: [0xfbdd], // ARABIC LETTER U WITH HAMZA ABOVE\n 0x0679: [0xfb66, 0xfb67, 0xfb68, 0xfb69], // ARABIC LETTER TTEH\n 0x067a: [0xfb5e, 0xfb5f, 0xfb60, 0xfb61], // ARABIC LETTER TTEHEH\n 0x067b: [0xfb52, 0xfb53, 0xfb54, 0xfb55], // ARABIC LETTER BEEH\n 0x067e: [0xfb56, 0xfb57, 0xfb58, 0xfb59], // ARABIC LETTER PEH\n 0x067f: [0xfb62, 0xfb63, 0xfb64, 0xfb65], // ARABIC LETTER TEHEH\n 0x0680: [0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d], // ARABIC LETTER BEHEH\n 0x0683: [0xfb76, 0xfb77, 0xfb78, 0xfb79], // ARABIC LETTER NYEH\n 0x0684: [0xfb72, 0xfb73, 0xfb74, 0xfb75], // ARABIC LETTER DYEH\n 0x0686: [0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d], // ARABIC LETTER TCHEH\n 0x0687: [0xfb7e, 0xfb7f, 0xfb80, 0xfb81], // ARABIC LETTER TCHEHEH\n 0x0688: [0xfb88, 0xfb89], // ARABIC LETTER DDAL\n 0x068c: [0xfb84, 0xfb85], // ARABIC LETTER DAHAL\n 0x068d: [0xfb82, 0xfb83], // ARABIC LETTER DDAHAL\n 0x068e: [0xfb86, 0xfb87], // ARABIC LETTER DUL\n 0x0691: [0xfb8c, 0xfb8d], // ARABIC LETTER RREH\n 0x0698: [0xfb8a, 0xfb8b], // ARABIC LETTER JEH\n 0x06a4: [0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d], // ARABIC LETTER VEH\n 0x06a6: [0xfb6e, 0xfb6f, 0xfb70, 0xfb71], // ARABIC LETTER PEHEH\n 0x06a9: [0xfb8e, 0xfb8f, 0xfb90, 0xfb91], // ARABIC LETTER KEHEH\n 0x06ad: [0xfbd3, 0xfbd4, 0xfbd5, 0xfbd6], // ARABIC LETTER NG\n 0x06af: [0xfb92, 0xfb93, 0xfb94, 0xfb95], // ARABIC LETTER GAF\n 0x06b1: [0xfb9a, 0xfb9b, 0xfb9c, 0xfb9d], // ARABIC LETTER NGOEH\n 0x06b3: [0xfb96, 0xfb97, 0xfb98, 0xfb99], // ARABIC LETTER GUEH\n 0x06ba: [0xfb9e, 0xfb9f], // ARABIC LETTER NOON GHUNNA\n 0x06bb: [0xfba0, 0xfba1, 0xfba2, 0xfba3], // ARABIC LETTER RNOON\n 0x06be: [0xfbaa, 0xfbab, 0xfbac, 0xfbad], // ARABIC LETTER HEH DOACHASHMEE\n 0x06c0: [0xfba4, 0xfba5], // ARABIC LETTER HEH WITH YEH ABOVE\n 0x06c1: [0xfba6, 0xfba7, 0xfba8, 0xfba9], // ARABIC LETTER HEH GOAL\n 0x06c5: [0xfbe0, 0xfbe1], // ARABIC LETTER KIRGHIZ OE\n 0x06c6: [0xfbd9, 0xfbda], // ARABIC LETTER OE\n 0x06c7: [0xfbd7, 0xfbd8], // ARABIC LETTER U\n 0x06c8: [0xfbdb, 0xfbdc], // ARABIC LETTER YU\n 0x06c9: [0xfbe2, 0xfbe3], // ARABIC LETTER KIRGHIZ YU\n 0x06cb: [0xfbde, 0xfbdf], // ARABIC LETTER VE\n 0x06cc: [0xfbfc, 0xfbfd, 0xfbfe, 0xfbff], // ARABIC LETTER FARSI YEH\n 0x06d0: [0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7], //ARABIC LETTER E\n 0x06d2: [0xfbae, 0xfbaf], // ARABIC LETTER YEH BARREE\n 0x06d3: [0xfbb0, 0xfbb1] // ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\n };\n\n /*\n var ligaturesSubstitutionA = {\n 0xFBEA: []// ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM\n };\n */\n\n var ligatures = {\n 0xfedf: {\n 0xfe82: 0xfef5, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM\n 0xfe84: 0xfef7, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM\n 0xfe88: 0xfef9, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM\n 0xfe8e: 0xfefb // ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM\n },\n 0xfee0: {\n 0xfe82: 0xfef6, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM\n 0xfe84: 0xfef8, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM\n 0xfe88: 0xfefa, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM\n 0xfe8e: 0xfefc // ARABIC LIGATURE LAM WITH ALEF FINAL FORM\n },\n 0xfe8d: { 0xfedf: { 0xfee0: { 0xfeea: 0xfdf2 } } }, // ALLAH\n 0x0651: {\n 0x064c: 0xfc5e, // Shadda + Dammatan\n 0x064d: 0xfc5f, // Shadda + Kasratan\n 0x064e: 0xfc60, // Shadda + Fatha\n 0x064f: 0xfc61, // Shadda + Damma\n 0x0650: 0xfc62 // Shadda + Kasra\n }\n };\n\n var arabic_diacritics = {\n 1612: 64606, // Shadda + Dammatan\n 1613: 64607, // Shadda + Kasratan\n 1614: 64608, // Shadda + Fatha\n 1615: 64609, // Shadda + Damma\n 1616: 64610 // Shadda + Kasra\n };\n\n var alfletter = [1570, 1571, 1573, 1575];\n\n var noChangeInForm = -1;\n var isolatedForm = 0;\n var finalForm = 1;\n var initialForm = 2;\n var medialForm = 3;\n\n jsPDFAPI.__arabicParser__ = {};\n\n //private\n var isInArabicSubstitutionA = (jsPDFAPI.__arabicParser__.isInArabicSubstitutionA = function(\n letter\n ) {\n return typeof arabicSubstitionA[letter.charCodeAt(0)] !== \"undefined\";\n });\n\n var isArabicLetter = (jsPDFAPI.__arabicParser__.isArabicLetter = function(\n letter\n ) {\n return (\n typeof letter === \"string\" &&\n /^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(\n letter\n )\n );\n });\n\n var isArabicEndLetter = (jsPDFAPI.__arabicParser__.isArabicEndLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length <= 2\n );\n });\n\n var isArabicAlfLetter = (jsPDFAPI.__arabicParser__.isArabicAlfLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) && alfletter.indexOf(letter.charCodeAt(0)) >= 0\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasIsolatedForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 1\n );\n };\n\n var arabicLetterHasFinalForm = (jsPDFAPI.__arabicParser__.arabicLetterHasFinalForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 2\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasInitialForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 3\n );\n };\n\n var arabicLetterHasMedialForm = (jsPDFAPI.__arabicParser__.arabicLetterHasMedialForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length == 4\n );\n });\n\n var resolveLigatures = (jsPDFAPI.__arabicParser__.resolveLigatures = function(\n letters\n ) {\n var i = 0;\n var tmpLigatures = ligatures;\n var result = \"\";\n var effectedLetters = 0;\n\n for (i = 0; i < letters.length; i += 1) {\n if (typeof tmpLigatures[letters.charCodeAt(i)] !== \"undefined\") {\n effectedLetters++;\n tmpLigatures = tmpLigatures[letters.charCodeAt(i)];\n\n if (typeof tmpLigatures === \"number\") {\n result += String.fromCharCode(tmpLigatures);\n tmpLigatures = ligatures;\n effectedLetters = 0;\n }\n if (i === letters.length - 1) {\n tmpLigatures = ligatures;\n result += letters.charAt(i - (effectedLetters - 1));\n i = i - (effectedLetters - 1);\n effectedLetters = 0;\n }\n } else {\n tmpLigatures = ligatures;\n result += letters.charAt(i - effectedLetters);\n i = i - effectedLetters;\n effectedLetters = 0;\n }\n }\n\n return result;\n });\n\n jsPDFAPI.__arabicParser__.isArabicDiacritic = function(letter) {\n return (\n letter !== undefined &&\n arabic_diacritics[letter.charCodeAt(0)] !== undefined\n );\n };\n\n var getCorrectForm = (jsPDFAPI.__arabicParser__.getCorrectForm = function(\n currentChar,\n beforeChar,\n nextChar\n ) {\n if (!isArabicLetter(currentChar)) {\n return -1;\n }\n\n if (isInArabicSubstitutionA(currentChar) === false) {\n return noChangeInForm;\n }\n if (\n !arabicLetterHasFinalForm(currentChar) ||\n (!isArabicLetter(beforeChar) && !isArabicLetter(nextChar)) ||\n (!isArabicLetter(nextChar) && isArabicEndLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && !isArabicLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicAlfLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicEndLetter(beforeChar))\n ) {\n return isolatedForm;\n }\n\n if (\n arabicLetterHasMedialForm(currentChar) &&\n isArabicLetter(beforeChar) &&\n !isArabicEndLetter(beforeChar) &&\n isArabicLetter(nextChar) &&\n arabicLetterHasFinalForm(nextChar)\n ) {\n return medialForm;\n }\n\n if (isArabicEndLetter(currentChar) || !isArabicLetter(nextChar)) {\n return finalForm;\n }\n return initialForm;\n });\n\n /**\n * @name processArabic\n * @function\n * @param {string} text\n * @returns {string}\n */\n var parseArabic = function(text) {\n text = text || \"\";\n\n var result = \"\";\n var i = 0;\n var j = 0;\n var position = 0;\n var currentLetter = \"\";\n var prevLetter = \"\";\n var nextLetter = \"\";\n\n var words = text.split(\"\\\\s+\");\n var newWords = [];\n for (i = 0; i < words.length; i += 1) {\n newWords.push(\"\");\n for (j = 0; j < words[i].length; j += 1) {\n currentLetter = words[i][j];\n prevLetter = words[i][j - 1];\n nextLetter = words[i][j + 1];\n if (isArabicLetter(currentLetter)) {\n position = getCorrectForm(currentLetter, prevLetter, nextLetter);\n if (position !== -1) {\n newWords[i] += String.fromCharCode(\n arabicSubstitionA[currentLetter.charCodeAt(0)][position]\n );\n } else {\n newWords[i] += currentLetter;\n }\n } else {\n newWords[i] += currentLetter;\n }\n }\n\n newWords[i] = resolveLigatures(newWords[i]);\n }\n result = newWords.join(\" \");\n\n return result;\n };\n\n var processArabic = (jsPDFAPI.__arabicParser__.processArabic = jsPDFAPI.processArabic = function() {\n var text =\n typeof arguments[0] === \"string\" ? arguments[0] : arguments[0].text;\n var tmpText = [];\n var result;\n\n if (Array.isArray(text)) {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n tmpText.push([parseArabic(text[i][0]), text[i][1], text[i][2]]);\n } else {\n tmpText.push([parseArabic(text[i])]);\n }\n }\n result = tmpText;\n } else {\n result = parseArabic(text);\n }\n if (typeof arguments[0] === \"string\") {\n return result;\n } else {\n arguments[0].text = result;\n return arguments[0];\n }\n });\n\n jsPDFAPI.events.push([\"preProcessText\", processArabic]);\n})(jsPDF.API);\n","/** @license\n * jsPDF Autoprint Plugin\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name autoprint\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Makes the PDF automatically open the print-Dialog when opened in a PDF-viewer.\n *\n * @name autoPrint\n * @function\n * @param {Object} options (optional) Set the attribute variant to 'non-conform' (default) or 'javascript' to activate different methods of automatic printing when opening in a PDF-viewer .\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF();\n * doc.text(10, 10, 'This is a test');\n * doc.autoPrint({variant: 'non-conform'});\n * doc.save('autoprint.pdf');\n */\n jsPDFAPI.autoPrint = function(options) {\n \"use strict\";\n var refAutoPrintTag;\n options = options || {};\n options.variant = options.variant || \"non-conform\";\n\n switch (options.variant) {\n case \"javascript\":\n //https://github.com/Rob--W/pdf.js/commit/c676ecb5a0f54677b9f3340c3ef2cf42225453bb\n this.addJS(\"print({});\");\n break;\n case \"non-conform\":\n default:\n this.internal.events.subscribe(\"postPutResources\", function() {\n refAutoPrintTag = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /Named\");\n this.internal.out(\"/Type /Action\");\n this.internal.out(\"/N /Print\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.out(\"/OpenAction \" + refAutoPrintTag + \" 0 R\");\n });\n break;\n }\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Canvas PlugIn\n * This plugin mimics the HTML5 Canvas\n *\n * The goal is to provide a way for current canvas users to print directly to a PDF.\n * @name canvas\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @class Canvas\n * @classdesc A Canvas Wrapper for jsPDF\n */\n var Canvas = function() {\n var jsPdfInstance = undefined;\n Object.defineProperty(this, \"pdf\", {\n get: function() {\n return jsPdfInstance;\n },\n set: function(value) {\n jsPdfInstance = value;\n }\n });\n\n var _width = 150;\n /**\n * The height property is a positive integer reflecting the height HTML attribute of the element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 150 is used.\n * This is one of the two properties, the other being width, that controls the size of the canvas.\n *\n * @name width\n */\n Object.defineProperty(this, \"width\", {\n get: function() {\n return _width;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _width = 150;\n } else {\n _width = value;\n }\n if (this.getContext(\"2d\").pageWrapXEnabled) {\n this.getContext(\"2d\").pageWrapX = _width + 1;\n }\n }\n });\n\n var _height = 300;\n /**\n * The width property is a positive integer reflecting the width HTML attribute of the element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 300 is used.\n * This is one of the two properties, the other being height, that controls the size of the canvas.\n *\n * @name height\n */\n Object.defineProperty(this, \"height\", {\n get: function() {\n return _height;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _height = 300;\n } else {\n _height = value;\n }\n if (this.getContext(\"2d\").pageWrapYEnabled) {\n this.getContext(\"2d\").pageWrapY = _height + 1;\n }\n }\n });\n\n var _childNodes = [];\n Object.defineProperty(this, \"childNodes\", {\n get: function() {\n return _childNodes;\n },\n set: function(value) {\n _childNodes = value;\n }\n });\n\n var _style = {};\n Object.defineProperty(this, \"style\", {\n get: function() {\n return _style;\n },\n set: function(value) {\n _style = value;\n }\n });\n\n Object.defineProperty(this, \"parentNode\", {});\n };\n\n /**\n * The getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\n *\n * @name getContext\n * @function\n * @param {string} contextType Is a String containing the context identifier defining the drawing context associated to the canvas. Possible value is \"2d\", leading to the creation of a Context2D object representing a two-dimensional rendering context.\n * @param {object} contextAttributes\n */\n Canvas.prototype.getContext = function(contextType, contextAttributes) {\n contextType = contextType || \"2d\";\n var key;\n\n if (contextType !== \"2d\") {\n return null;\n }\n for (key in contextAttributes) {\n if (this.pdf.context2d.hasOwnProperty(key)) {\n this.pdf.context2d[key] = contextAttributes[key];\n }\n }\n this.pdf.context2d._canvas = this;\n return this.pdf.context2d;\n };\n\n /**\n * The toDataURL() method is just a stub to throw an error if accidently called.\n *\n * @name toDataURL\n * @function\n */\n Canvas.prototype.toDataURL = function() {\n throw new Error(\"toDataURL is not implemented.\");\n };\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n this.canvas = new Canvas();\n this.canvas.pdf = this;\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n * 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Hall, james@parall.ax\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name cell\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var NO_MARGINS = { left: 0, top: 0, bottom: 0, right: 0 };\n\n var px2pt = (0.264583 * 72) / 25.4;\n var printingHeaderRow = false;\n\n var _initialize = function() {\n if (typeof this.internal.__cell__ === \"undefined\") {\n this.internal.__cell__ = {};\n this.internal.__cell__.padding = 3;\n this.internal.__cell__.headerFunction = undefined;\n this.internal.__cell__.margins = Object.assign({}, NO_MARGINS);\n this.internal.__cell__.margins.width = this.getPageWidth();\n _reset.call(this);\n }\n };\n\n var _reset = function() {\n this.internal.__cell__.lastCell = new Cell();\n this.internal.__cell__.pages = 1;\n };\n\n var Cell = function() {\n var _x = arguments[0];\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n get: function() {\n return _x;\n },\n set: function(value) {\n _x = value;\n }\n });\n var _y = arguments[1];\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n get: function() {\n return _y;\n },\n set: function(value) {\n _y = value;\n }\n });\n var _width = arguments[2];\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n get: function() {\n return _width;\n },\n set: function(value) {\n _width = value;\n }\n });\n var _height = arguments[3];\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n get: function() {\n return _height;\n },\n set: function(value) {\n _height = value;\n }\n });\n var _text = arguments[4];\n Object.defineProperty(this, \"text\", {\n enumerable: true,\n get: function() {\n return _text;\n },\n set: function(value) {\n _text = value;\n }\n });\n var _lineNumber = arguments[5];\n Object.defineProperty(this, \"lineNumber\", {\n enumerable: true,\n get: function() {\n return _lineNumber;\n },\n set: function(value) {\n _lineNumber = value;\n }\n });\n var _align = arguments[6];\n Object.defineProperty(this, \"align\", {\n enumerable: true,\n get: function() {\n return _align;\n },\n set: function(value) {\n _align = value;\n }\n });\n\n return this;\n };\n\n Cell.prototype.clone = function() {\n return new Cell(\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n );\n };\n\n Cell.prototype.toArray = function() {\n return [\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n ];\n };\n\n /**\n * @name setHeaderFunction\n * @function\n * @param {function} func\n */\n jsPDFAPI.setHeaderFunction = function(func) {\n _initialize.call(this);\n this.internal.__cell__.headerFunction =\n typeof func === \"function\" ? func : undefined;\n return this;\n };\n\n /**\n * @name getTextDimensions\n * @function\n * @param {string} txt\n * @returns {Object} dimensions\n */\n jsPDFAPI.getTextDimensions = function(text, options) {\n _initialize.call(this);\n options = options || {};\n var fontSize = options.fontSize || this.getFontSize();\n var font = options.font || this.getFont();\n var scaleFactor = options.scaleFactor || this.internal.scaleFactor;\n var width = 0;\n var amountOfLines = 0;\n var height = 0;\n var tempWidth = 0;\n var scope = this;\n\n if (!Array.isArray(text) && typeof text !== \"string\") {\n if (typeof text === \"number\") {\n text = String(text);\n } else {\n throw new Error(\n \"getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.\"\n );\n }\n }\n\n const maxWidth = options.maxWidth;\n if (maxWidth > 0) {\n if (typeof text === \"string\") {\n text = this.splitTextToSize(text, maxWidth);\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\n text = text.reduce(function(acc, textLine) {\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\n }, []);\n }\n } else {\n // Without the else clause, it will not work if you do not pass along maxWidth\n text = Array.isArray(text) ? text : [text];\n }\n\n for (var i = 0; i < text.length; i++) {\n tempWidth = this.getStringUnitWidth(text[i], { font: font }) * fontSize;\n if (width < tempWidth) {\n width = tempWidth;\n }\n }\n\n if (width !== 0) {\n amountOfLines = text.length;\n }\n\n width = width / scaleFactor;\n height = Math.max(\n (amountOfLines * fontSize * this.getLineHeightFactor() -\n fontSize * (this.getLineHeightFactor() - 1)) /\n scaleFactor,\n 0\n );\n return { w: width, h: height };\n };\n\n /**\n * @name cellAddPage\n * @function\n */\n jsPDFAPI.cellAddPage = function() {\n _initialize.call(this);\n\n this.addPage();\n\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n this.internal.__cell__.lastCell = new Cell(\n margins.left,\n margins.top,\n undefined,\n undefined\n );\n this.internal.__cell__.pages += 1;\n\n return this;\n };\n\n /**\n * @name cell\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {string} text\n * @param {number} lineNumber lineNumber\n * @param {string} align\n * @return {jsPDF} jsPDF-instance\n */\n var cell = (jsPDFAPI.cell = function() {\n var currentCell;\n\n if (arguments[0] instanceof Cell) {\n currentCell = arguments[0];\n } else {\n currentCell = new Cell(\n arguments[0],\n arguments[1],\n arguments[2],\n arguments[3],\n arguments[4],\n arguments[5]\n );\n }\n _initialize.call(this);\n var lastCell = this.internal.__cell__.lastCell;\n var padding = this.internal.__cell__.padding;\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n var tableHeaderRow = this.internal.__cell__.tableHeaderRow;\n var printHeaders = this.internal.__cell__.printHeaders;\n // If this is not the first cell, we must change its position\n if (typeof lastCell.lineNumber !== \"undefined\") {\n if (lastCell.lineNumber === currentCell.lineNumber) {\n //Same line\n currentCell.x = (lastCell.x || 0) + (lastCell.width || 0);\n currentCell.y = lastCell.y || 0;\n } else {\n //New line\n if (\n lastCell.y + lastCell.height + currentCell.height + margins.bottom >\n this.getPageHeight()\n ) {\n this.cellAddPage();\n currentCell.y = margins.top;\n if (printHeaders && tableHeaderRow) {\n this.printHeaderRow(currentCell.lineNumber, true);\n currentCell.y += tableHeaderRow[0].height;\n }\n } else {\n currentCell.y = lastCell.y + lastCell.height || currentCell.y;\n }\n }\n }\n\n if (typeof currentCell.text[0] !== \"undefined\") {\n this.rect(\n currentCell.x,\n currentCell.y,\n currentCell.width,\n currentCell.height,\n printingHeaderRow === true ? \"FD\" : undefined\n );\n if (currentCell.align === \"right\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width - padding,\n currentCell.y + padding,\n { align: \"right\", baseline: \"top\" }\n );\n } else if (currentCell.align === \"center\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width / 2,\n currentCell.y + padding,\n {\n align: \"center\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n } else {\n this.text(\n currentCell.text,\n currentCell.x + padding,\n currentCell.y + padding,\n {\n align: \"left\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n }\n }\n this.internal.__cell__.lastCell = currentCell;\n return this;\n });\n\n /**\n * Create a table from a set of data.\n * @name table\n * @function\n * @param {Integer} [x] : left-position for top-left corner of table\n * @param {Integer} [y] top-position for top-left corner of table\n * @param {Object[]} [data] An array of objects containing key-value pairs corresponding to a row of data.\n * @param {String[]} [headers] Omit or null to auto-generate headers at a performance cost\n\n * @param {Object} [config.printHeaders] True to print column headers at the top of every page\n * @param {Object} [config.autoSize] True to dynamically set the column widths to match the widest cell value\n * @param {Object} [config.margins] margin values for left, top, bottom, and width\n * @param {Object} [config.fontSize] Integer fontSize to use (optional)\n * @param {Object} [config.padding] cell-padding in pt to use (optional)\n * @param {Object} [config.headerBackgroundColor] default is #c8c8c8 (optional)\n * @param {Object} [config.headerTextColor] default is #000 (optional)\n * @param {Object} [config.rowStart] callback to handle before print each row (optional)\n * @param {Object} [config.cellStart] callback to handle before print each cell (optional)\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.table = function(x, y, data, headers, config) {\n _initialize.call(this);\n if (!data) {\n throw new Error(\"No data for PDF table.\");\n }\n\n config = config || {};\n\n var headerNames = [],\n headerLabels = [],\n headerAligns = [],\n i,\n columnMatrix = {},\n columnWidths = {},\n column,\n columnMinWidths = [],\n j,\n tableHeaderConfigs = [],\n //set up defaults. If a value is provided in config, defaults will be overwritten:\n autoSize = config.autoSize || false,\n printHeaders = config.printHeaders === false ? false : true,\n fontSize =\n config.css && typeof config.css[\"font-size\"] !== \"undefined\"\n ? config.css[\"font-size\"] * 16\n : config.fontSize || 12,\n margins =\n config.margins ||\n Object.assign({ width: this.getPageWidth() }, NO_MARGINS),\n padding = typeof config.padding === \"number\" ? config.padding : 3,\n headerBackgroundColor = config.headerBackgroundColor || \"#c8c8c8\",\n headerTextColor = config.headerTextColor || \"#000\";\n\n _reset.call(this);\n\n this.internal.__cell__.printHeaders = printHeaders;\n this.internal.__cell__.margins = margins;\n this.internal.__cell__.table_font_size = fontSize;\n this.internal.__cell__.padding = padding;\n this.internal.__cell__.headerBackgroundColor = headerBackgroundColor;\n this.internal.__cell__.headerTextColor = headerTextColor;\n this.setFontSize(fontSize);\n\n // Set header values\n if (headers === undefined || headers === null) {\n // No headers defined so we derive from data\n headerNames = Object.keys(data[0]);\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n } else if (Array.isArray(headers) && typeof headers[0] === \"object\") {\n headerNames = headers.map(function(header) {\n return header.name;\n });\n headerLabels = headers.map(function(header) {\n return header.prompt || header.name || \"\";\n });\n headerAligns = headers.map(function(header) {\n return header.align || \"left\";\n });\n // Split header configs into names and prompts\n for (i = 0; i < headers.length; i += 1) {\n columnWidths[headers[i].name] = headers[i].width * px2pt;\n }\n } else if (Array.isArray(headers) && typeof headers[0] === \"string\") {\n headerNames = headers;\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n }\n\n if (\n autoSize ||\n (Array.isArray(headers) && typeof headers[0] === \"string\")\n ) {\n var headerName;\n for (i = 0; i < headerNames.length; i += 1) {\n headerName = headerNames[i];\n\n // Create a matrix of columns e.g., {column_title: [row1_Record, row2_Record]}\n\n columnMatrix[headerName] = data.map(function(rec) {\n return rec[headerName];\n });\n\n // get header width\n this.setFont(undefined, \"bold\");\n columnMinWidths.push(\n this.getTextDimensions(headerLabels[i], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n column = columnMatrix[headerName];\n\n // get cell widths\n this.setFont(undefined, \"normal\");\n for (j = 0; j < column.length; j += 1) {\n columnMinWidths.push(\n this.getTextDimensions(column[j], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n }\n\n // get final column width\n columnWidths[headerName] =\n Math.max.apply(null, columnMinWidths) + padding + padding;\n\n //have to reset\n columnMinWidths = [];\n }\n }\n\n // -- Construct the table\n\n if (printHeaders) {\n var row = {};\n for (i = 0; i < headerNames.length; i += 1) {\n row[headerNames[i]] = {};\n row[headerNames[i]].text = headerLabels[i];\n row[headerNames[i]].align = headerAligns[i];\n }\n\n var rowHeight = calculateLineHeight.call(this, row, columnWidths);\n\n // Construct the header row\n tableHeaderConfigs = headerNames.map(function(value) {\n return new Cell(\n x,\n y,\n columnWidths[value],\n rowHeight,\n row[value].text,\n undefined,\n row[value].align\n );\n });\n\n // Store the table header config\n this.setTableHeaderRow(tableHeaderConfigs);\n\n // Print the header for the start of the table\n this.printHeaderRow(1, false);\n }\n\n // Construct the data rows\n\n var align = headers.reduce(function(pv, cv) {\n pv[cv.name] = cv.align;\n return pv;\n }, {});\n for (i = 0; i < data.length; i += 1) {\n if (\"rowStart\" in config && config.rowStart instanceof Function) {\n config.rowStart(\n {\n row: i,\n data: data[i]\n },\n this\n );\n }\n var lineHeight = calculateLineHeight.call(this, data[i], columnWidths);\n\n for (j = 0; j < headerNames.length; j += 1) {\n var cellData = data[i][headerNames[j]];\n if (\"cellStart\" in config && config.cellStart instanceof Function) {\n config.cellStart(\n {\n row: i,\n col: j,\n data: cellData\n },\n this\n );\n }\n cell.call(\n this,\n new Cell(\n x,\n y,\n columnWidths[headerNames[j]],\n lineHeight,\n cellData,\n i + 2,\n align[headerNames[j]]\n )\n );\n }\n }\n this.internal.__cell__.table_x = x;\n this.internal.__cell__.table_y = y;\n return this;\n };\n\n /**\n * Calculate the height for containing the highest column\n *\n * @name calculateLineHeight\n * @function\n * @param {Object[]} model is the line of data we want to calculate the height of\n * @param {Integer[]} columnWidths is size of each column\n * @returns {number} lineHeight\n * @private\n */\n var calculateLineHeight = function calculateLineHeight(model, columnWidths) {\n var padding = this.internal.__cell__.padding;\n var fontSize = this.internal.__cell__.table_font_size;\n var scaleFactor = this.internal.scaleFactor;\n\n return Object.keys(model)\n .map(function(key) {\n var value = model[key];\n return this.splitTextToSize(\n value.hasOwnProperty(\"text\") ? value.text : value,\n columnWidths[key] - padding - padding\n );\n }, this)\n .map(function(value) {\n return (\n (this.getLineHeightFactor() * value.length * fontSize) / scaleFactor +\n padding +\n padding\n );\n }, this)\n .reduce(function(pv, cv) {\n return Math.max(pv, cv);\n }, 0);\n };\n\n /**\n * Store the config for outputting a table header\n *\n * @name setTableHeaderRow\n * @function\n * @param {Object[]} config\n * An array of cell configs that would define a header row: Each config matches the config used by jsPDFAPI.cell\n * except the lineNumber parameter is excluded\n */\n jsPDFAPI.setTableHeaderRow = function(config) {\n _initialize.call(this);\n this.internal.__cell__.tableHeaderRow = config;\n };\n\n /**\n * Output the store header row\n *\n * @name printHeaderRow\n * @function\n * @param {number} lineNumber The line number to output the header at\n * @param {boolean} new_page\n */\n jsPDFAPI.printHeaderRow = function(lineNumber, new_page) {\n _initialize.call(this);\n if (!this.internal.__cell__.tableHeaderRow) {\n throw new Error(\"Property tableHeaderRow does not exist.\");\n }\n\n var tableHeaderCell;\n\n printingHeaderRow = true;\n if (typeof this.internal.__cell__.headerFunction === \"function\") {\n var position = this.internal.__cell__.headerFunction(\n this,\n this.internal.__cell__.pages\n );\n this.internal.__cell__.lastCell = new Cell(\n position[0],\n position[1],\n position[2],\n position[3],\n undefined,\n -1\n );\n }\n this.setFont(undefined, \"bold\");\n\n var tempHeaderConf = [];\n for (var i = 0; i < this.internal.__cell__.tableHeaderRow.length; i += 1) {\n tableHeaderCell = this.internal.__cell__.tableHeaderRow[i].clone();\n if (new_page) {\n tableHeaderCell.y = this.internal.__cell__.margins.top || 0;\n tempHeaderConf.push(tableHeaderCell);\n }\n tableHeaderCell.lineNumber = lineNumber;\n var currentTextColor = this.getTextColor();\n this.setTextColor(this.internal.__cell__.headerTextColor);\n this.setFillColor(this.internal.__cell__.headerBackgroundColor);\n cell.call(this, tableHeaderCell);\n this.setTextColor(currentTextColor);\n }\n if (tempHeaderConf.length > 0) {\n this.setTableHeaderRow(tempHeaderConf);\n }\n this.setFont(undefined, \"normal\");\n printingHeaderRow = false;\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF JavaScript plugin\n *\n * @name javascript\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n var jsNamesObj, jsJsObj, text;\n /**\n * @name addJS\n * @function\n * @param {string} javascript The javascript to be embedded into the PDF-file.\n * @returns {jsPDF}\n */\n jsPDFAPI.addJS = function(javascript) {\n text = javascript;\n this.internal.events.subscribe(\"postPutResources\", function() {\n jsNamesObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/Names [(EmbeddedJS) \" + (jsNamesObj + 1) + \" 0 R]\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n\n jsJsObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /JavaScript\");\n this.internal.out(\"/JS (\" + text + \")\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n this.internal.events.subscribe(\"putCatalog\", function() {\n if (jsNamesObj !== undefined && jsJsObj !== undefined) {\n this.internal.out(\"/Names <>\");\n }\n });\n return this;\n };\n})(jsPDF.API);\n","/* eslint-disable no-fallthrough */\r\n/* eslint-disable no-console */\r\n/**\r\n * @license\r\n * jsPDF Context2D PlugIn Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\r\n *\r\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\r\n */\r\n\r\nimport { jsPDF } from \"../jspdf.js\";\r\nimport { RGBColor } from \"../libs/rgbcolor.js\";\r\nimport { console } from \"../libs/console.js\";\r\nimport {\r\n buildFontFaceMap,\r\n parseFontFamily,\r\n resolveFontFace\r\n} from \"../libs/fontFace.js\";\r\n\r\n/**\r\n * This plugin mimics the HTML5 CanvasRenderingContext2D.\r\n *\r\n * The goal is to provide a way for current canvas implementations to print directly to a PDF.\r\n *\r\n * @name context2d\r\n * @module\r\n */\r\n(function(jsPDFAPI) {\r\n \"use strict\";\r\n var ContextLayer = function(ctx) {\r\n ctx = ctx || {};\r\n this.isStrokeTransparent = ctx.isStrokeTransparent || false;\r\n this.strokeOpacity = ctx.strokeOpacity || 1;\r\n this.strokeStyle = ctx.strokeStyle || \"#000000\";\r\n this.fillStyle = ctx.fillStyle || \"#000000\";\r\n this.isFillTransparent = ctx.isFillTransparent || false;\r\n this.fillOpacity = ctx.fillOpacity || 1;\r\n this.font = ctx.font || \"10px sans-serif\";\r\n this.textBaseline = ctx.textBaseline || \"alphabetic\";\r\n this.textAlign = ctx.textAlign || \"left\";\r\n this.lineWidth = ctx.lineWidth || 1;\r\n this.lineJoin = ctx.lineJoin || \"miter\";\r\n this.lineCap = ctx.lineCap || \"butt\";\r\n this.path = ctx.path || [];\r\n this.transform =\r\n typeof ctx.transform !== \"undefined\"\r\n ? ctx.transform.clone()\r\n : new Matrix();\r\n this.globalCompositeOperation = ctx.globalCompositeOperation || \"normal\";\r\n this.globalAlpha = ctx.globalAlpha || 1.0;\r\n this.clip_path = ctx.clip_path || [];\r\n this.currentPoint = ctx.currentPoint || new Point();\r\n this.miterLimit = ctx.miterLimit || 10.0;\r\n this.lastPoint = ctx.lastPoint || new Point();\r\n this.lineDashOffset = ctx.lineDashOffset || 0.0;\r\n this.lineDash = ctx.lineDash || [];\r\n this.margin = ctx.margin || [0, 0, 0, 0];\r\n this.prevPageLastElemOffset = ctx.prevPageLastElemOffset || 0;\r\n\r\n this.ignoreClearRect =\r\n typeof ctx.ignoreClearRect === \"boolean\" ? ctx.ignoreClearRect : true;\r\n return this;\r\n };\r\n\r\n //stub\r\n var f2,\r\n getHorizontalCoordinateString,\r\n getVerticalCoordinateString,\r\n getHorizontalCoordinate,\r\n getVerticalCoordinate,\r\n Point,\r\n Rectangle,\r\n Matrix,\r\n _ctx;\r\n jsPDFAPI.events.push([\r\n \"initialized\",\r\n function() {\r\n this.context2d = new Context2D(this);\r\n\r\n f2 = this.internal.f2;\r\n getHorizontalCoordinateString = this.internal.getCoordinateString;\r\n getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\r\n getHorizontalCoordinate = this.internal.getHorizontalCoordinate;\r\n getVerticalCoordinate = this.internal.getVerticalCoordinate;\r\n Point = this.internal.Point;\r\n Rectangle = this.internal.Rectangle;\r\n Matrix = this.internal.Matrix;\r\n _ctx = new ContextLayer();\r\n }\r\n ]);\r\n\r\n var Context2D = function(pdf) {\r\n Object.defineProperty(this, \"canvas\", {\r\n get: function() {\r\n return { parentNode: false, style: false };\r\n }\r\n });\r\n\r\n var _pdf = pdf;\r\n Object.defineProperty(this, \"pdf\", {\r\n get: function() {\r\n return _pdf;\r\n }\r\n });\r\n\r\n var _pageWrapXEnabled = false;\r\n /**\r\n * @name pageWrapXEnabled\r\n * @type {boolean}\r\n * @default false\r\n */\r\n Object.defineProperty(this, \"pageWrapXEnabled\", {\r\n get: function() {\r\n return _pageWrapXEnabled;\r\n },\r\n set: function(value) {\r\n _pageWrapXEnabled = Boolean(value);\r\n }\r\n });\r\n\r\n var _pageWrapYEnabled = false;\r\n /**\r\n * @name pageWrapYEnabled\r\n * @type {boolean}\r\n * @default true\r\n */\r\n Object.defineProperty(this, \"pageWrapYEnabled\", {\r\n get: function() {\r\n return _pageWrapYEnabled;\r\n },\r\n set: function(value) {\r\n _pageWrapYEnabled = Boolean(value);\r\n }\r\n });\r\n\r\n var _posX = 0;\r\n /**\r\n * @name posX\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"posX\", {\r\n get: function() {\r\n return _posX;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _posX = value;\r\n }\r\n }\r\n });\r\n\r\n var _posY = 0;\r\n /**\r\n * @name posY\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"posY\", {\r\n get: function() {\r\n return _posY;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _posY = value;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Gets or sets the page margin when using auto paging. Has no effect when {@link autoPaging} is off.\r\n * @name margin\r\n * @type {number|number[]}\r\n * @default [0, 0, 0, 0]\r\n */\r\n Object.defineProperty(this, \"margin\", {\r\n get: function() {\r\n return _ctx.margin;\r\n },\r\n set: function(value) {\r\n var margin;\r\n if (typeof value === \"number\") {\r\n margin = [value, value, value, value];\r\n } else {\r\n margin = new Array(4);\r\n margin[0] = value[0];\r\n margin[1] = value.length >= 2 ? value[1] : margin[0];\r\n margin[2] = value.length >= 3 ? value[2] : margin[0];\r\n margin[3] = value.length >= 4 ? value[3] : margin[1];\r\n }\r\n _ctx.margin = margin;\r\n }\r\n });\r\n\r\n var _autoPaging = false;\r\n /**\r\n * Gets or sets the auto paging mode. When auto paging is enabled, the context2d will automatically draw on the\r\n * next page if a shape or text chunk doesn't fit entirely on the current page. The context2d will create new\r\n * pages if required.\r\n *\r\n * Context2d supports different modes:\r\n *
      \r\n *
    • \r\n * false: Auto paging is disabled.\r\n *
    • \r\n *
    • \r\n * true or 'slice': Will cut shapes or text chunks across page breaks. Will possibly\r\n * slice text in half, making it difficult to read.\r\n *
    • \r\n *
    • \r\n * 'text': Trys not to cut text in half across page breaks. Works best for documents consisting\r\n * mostly of a single column of text.\r\n *
    • \r\n *
    \r\n * @name Context2D#autoPaging\r\n * @type {boolean|\"slice\"|\"text\"}\r\n * @default false\r\n */\r\n Object.defineProperty(this, \"autoPaging\", {\r\n get: function() {\r\n return _autoPaging;\r\n },\r\n set: function(value) {\r\n _autoPaging = value;\r\n }\r\n });\r\n\r\n var lastBreak = 0;\r\n /**\r\n * @name lastBreak\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"lastBreak\", {\r\n get: function() {\r\n return lastBreak;\r\n },\r\n set: function(value) {\r\n lastBreak = value;\r\n }\r\n });\r\n\r\n var pageBreaks = [];\r\n /**\r\n * Y Position of page breaks.\r\n * @name pageBreaks\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"pageBreaks\", {\r\n get: function() {\r\n return pageBreaks;\r\n },\r\n set: function(value) {\r\n pageBreaks = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ctx\r\n * @type {object}\r\n * @default {}\r\n */\r\n Object.defineProperty(this, \"ctx\", {\r\n get: function() {\r\n return _ctx;\r\n },\r\n set: function(value) {\r\n if (value instanceof ContextLayer) {\r\n _ctx = value;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * @name path\r\n * @type {array}\r\n * @default []\r\n */\r\n Object.defineProperty(this, \"path\", {\r\n get: function() {\r\n return _ctx.path;\r\n },\r\n set: function(value) {\r\n _ctx.path = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ctxStack\r\n * @type {array}\r\n * @default []\r\n */\r\n var _ctxStack = [];\r\n Object.defineProperty(this, \"ctxStack\", {\r\n get: function() {\r\n return _ctxStack;\r\n },\r\n set: function(value) {\r\n _ctxStack = value;\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the color, gradient, or pattern used to fill the drawing\r\n *\r\n * @name fillStyle\r\n * @default #000000\r\n * @property {(color|gradient|pattern)} value The color of the drawing. Default value is #000000
    \r\n * A gradient object (linear or radial) used to fill the drawing (not supported by context2d)
    \r\n * A pattern object to use to fill the drawing (not supported by context2d)\r\n */\r\n Object.defineProperty(this, \"fillStyle\", {\r\n get: function() {\r\n return this.ctx.fillStyle;\r\n },\r\n set: function(value) {\r\n var rgba;\r\n rgba = getRGBA(value);\r\n\r\n this.ctx.fillStyle = rgba.style;\r\n this.ctx.isFillTransparent = rgba.a === 0;\r\n this.ctx.fillOpacity = rgba.a;\r\n\r\n this.pdf.setFillColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n this.pdf.setTextColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the color, gradient, or pattern used for strokes\r\n *\r\n * @name strokeStyle\r\n * @default #000000\r\n * @property {color} color A CSS color value that indicates the stroke color of the drawing. Default value is #000000 (not supported by context2d)\r\n * @property {gradient} gradient A gradient object (linear or radial) used to create a gradient stroke (not supported by context2d)\r\n * @property {pattern} pattern A pattern object used to create a pattern stroke (not supported by context2d)\r\n */\r\n Object.defineProperty(this, \"strokeStyle\", {\r\n get: function() {\r\n return this.ctx.strokeStyle;\r\n },\r\n set: function(value) {\r\n var rgba = getRGBA(value);\r\n\r\n this.ctx.strokeStyle = rgba.style;\r\n this.ctx.isStrokeTransparent = rgba.a === 0;\r\n this.ctx.strokeOpacity = rgba.a;\r\n\r\n if (rgba.a === 0) {\r\n this.pdf.setDrawColor(255, 255, 255);\r\n } else if (rgba.a === 1) {\r\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n } else {\r\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the style of the end caps for a line\r\n *\r\n * @name lineCap\r\n * @default butt\r\n * @property {(butt|round|square)} lineCap butt A flat edge is added to each end of the line
    \r\n * round A rounded end cap is added to each end of the line
    \r\n * square A square end cap is added to each end of the line
    \r\n */\r\n Object.defineProperty(this, \"lineCap\", {\r\n get: function() {\r\n return this.ctx.lineCap;\r\n },\r\n set: function(value) {\r\n if ([\"butt\", \"round\", \"square\"].indexOf(value) !== -1) {\r\n this.ctx.lineCap = value;\r\n this.pdf.setLineCap(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the current line width\r\n *\r\n * @name lineWidth\r\n * @default 1\r\n * @property {number} lineWidth The current line width, in pixels\r\n */\r\n Object.defineProperty(this, \"lineWidth\", {\r\n get: function() {\r\n return this.ctx.lineWidth;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n this.ctx.lineWidth = value;\r\n this.pdf.setLineWidth(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the type of corner created, when two lines meet\r\n */\r\n Object.defineProperty(this, \"lineJoin\", {\r\n get: function() {\r\n return this.ctx.lineJoin;\r\n },\r\n set: function(value) {\r\n if ([\"bevel\", \"round\", \"miter\"].indexOf(value) !== -1) {\r\n this.ctx.lineJoin = value;\r\n this.pdf.setLineJoin(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * A number specifying the miter limit ratio in coordinate space units. Zero, negative, Infinity, and NaN values are ignored. The default value is 10.0.\r\n *\r\n * @name miterLimit\r\n * @default 10\r\n */\r\n Object.defineProperty(this, \"miterLimit\", {\r\n get: function() {\r\n return this.ctx.miterLimit;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n this.ctx.miterLimit = value;\r\n this.pdf.setMiterLimit(value);\r\n }\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"textBaseline\", {\r\n get: function() {\r\n return this.ctx.textBaseline;\r\n },\r\n set: function(value) {\r\n this.ctx.textBaseline = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"textAlign\", {\r\n get: function() {\r\n return this.ctx.textAlign;\r\n },\r\n set: function(value) {\r\n if ([\"right\", \"end\", \"center\", \"left\", \"start\"].indexOf(value) !== -1) {\r\n this.ctx.textAlign = value;\r\n }\r\n }\r\n });\r\n\r\n var _fontFaceMap = null;\r\n\r\n function getFontFaceMap(pdf, fontFaces) {\r\n if (_fontFaceMap === null) {\r\n var fontMap = pdf.getFontList();\r\n\r\n var convertedFontFaces = convertToFontFaces(fontMap);\r\n\r\n _fontFaceMap = buildFontFaceMap(convertedFontFaces.concat(fontFaces));\r\n }\r\n\r\n return _fontFaceMap;\r\n }\r\n\r\n function convertToFontFaces(fontMap) {\r\n var fontFaces = [];\r\n\r\n Object.keys(fontMap).forEach(function(family) {\r\n var styles = fontMap[family];\r\n\r\n styles.forEach(function(style) {\r\n var fontFace = null;\r\n\r\n switch (style) {\r\n case \"bold\":\r\n fontFace = {\r\n family: family,\r\n weight: \"bold\"\r\n };\r\n break;\r\n\r\n case \"italic\":\r\n fontFace = {\r\n family: family,\r\n style: \"italic\"\r\n };\r\n break;\r\n\r\n case \"bolditalic\":\r\n fontFace = {\r\n family: family,\r\n weight: \"bold\",\r\n style: \"italic\"\r\n };\r\n break;\r\n\r\n case \"\":\r\n case \"normal\":\r\n fontFace = {\r\n family: family\r\n };\r\n break;\r\n }\r\n\r\n // If font-face is still null here, it is a font with some styling we don't recognize and\r\n // cannot map or it is a font added via the fontFaces option of .html().\r\n if (fontFace !== null) {\r\n fontFace.ref = {\r\n name: family,\r\n style: style\r\n };\r\n\r\n fontFaces.push(fontFace);\r\n }\r\n });\r\n });\r\n\r\n return fontFaces;\r\n }\r\n\r\n var _fontFaces = null;\r\n /**\r\n * A map of available font-faces, as passed in the options of\r\n * .html(). If set a limited implementation of the font style matching\r\n * algorithm defined by https://www.w3.org/TR/css-fonts-3/#font-matching-algorithm\r\n * will be used. If not set it will fallback to previous behavior.\r\n */\r\n\r\n Object.defineProperty(this, \"fontFaces\", {\r\n get: function() {\r\n return _fontFaces;\r\n },\r\n set: function(value) {\r\n _fontFaceMap = null;\r\n _fontFaces = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"font\", {\r\n get: function() {\r\n return this.ctx.font;\r\n },\r\n set: function(value) {\r\n this.ctx.font = value;\r\n var rx, matches;\r\n\r\n //source: https://stackoverflow.com/a/10136041\r\n // eslint-disable-next-line no-useless-escape\r\n rx = /^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-_,\\\"\\'\\sa-z]+?)\\s*$/i;\r\n matches = rx.exec(value);\r\n if (matches !== null) {\r\n var fontStyle = matches[1];\r\n var fontVariant = matches[2];\r\n var fontWeight = matches[3];\r\n var fontSize = matches[4];\r\n var lineHeight = matches[5];\r\n var fontFamily = matches[6];\r\n } else {\r\n return;\r\n }\r\n var rxFontSize = /^([.\\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i;\r\n var fontSizeUnit = rxFontSize.exec(fontSize)[2];\r\n\r\n if (\"px\" === fontSizeUnit) {\r\n fontSize = Math.floor(\r\n parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n );\r\n } else if (\"em\" === fontSizeUnit) {\r\n fontSize = Math.floor(parseFloat(fontSize) * this.pdf.getFontSize());\r\n } else {\r\n fontSize = Math.floor(\r\n parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n );\r\n }\r\n\r\n this.pdf.setFontSize(fontSize);\r\n var parts = parseFontFamily(fontFamily);\r\n\r\n if (this.fontFaces) {\r\n var fontFaceMap = getFontFaceMap(this.pdf, this.fontFaces);\r\n\r\n var rules = parts.map(function(ff) {\r\n return {\r\n family: ff,\r\n stretch: \"normal\", // TODO: Extract font-stretch from font rule (perhaps write proper parser for it?)\r\n weight: fontWeight,\r\n style: fontStyle\r\n };\r\n });\r\n\r\n var font = resolveFontFace(fontFaceMap, rules);\r\n this.pdf.setFont(font.ref.name, font.ref.style);\r\n return;\r\n }\r\n\r\n var style = \"\";\r\n if (\r\n fontWeight === \"bold\" ||\r\n parseInt(fontWeight, 10) >= 700 ||\r\n fontStyle === \"bold\"\r\n ) {\r\n style = \"bold\";\r\n }\r\n\r\n if (fontStyle === \"italic\") {\r\n style += \"italic\";\r\n }\r\n\r\n if (style.length === 0) {\r\n style = \"normal\";\r\n }\r\n var jsPdfFontName = \"\";\r\n\r\n var fallbackFonts = {\r\n arial: \"Helvetica\",\r\n Arial: \"Helvetica\",\r\n verdana: \"Helvetica\",\r\n Verdana: \"Helvetica\",\r\n helvetica: \"Helvetica\",\r\n Helvetica: \"Helvetica\",\r\n \"sans-serif\": \"Helvetica\",\r\n fixed: \"Courier\",\r\n monospace: \"Courier\",\r\n terminal: \"Courier\",\r\n cursive: \"Times\",\r\n fantasy: \"Times\",\r\n serif: \"Times\"\r\n };\r\n\r\n for (var i = 0; i < parts.length; i++) {\r\n if (\r\n this.pdf.internal.getFont(parts[i], style, {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n break;\r\n } else if (\r\n style === \"bolditalic\" &&\r\n this.pdf.internal.getFont(parts[i], \"bold\", {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n style = \"bold\";\r\n } else if (\r\n this.pdf.internal.getFont(parts[i], \"normal\", {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n style = \"normal\";\r\n break;\r\n }\r\n }\r\n if (jsPdfFontName === \"\") {\r\n for (var j = 0; j < parts.length; j++) {\r\n if (fallbackFonts[parts[j]]) {\r\n jsPdfFontName = fallbackFonts[parts[j]];\r\n break;\r\n }\r\n }\r\n }\r\n jsPdfFontName = jsPdfFontName === \"\" ? \"Times\" : jsPdfFontName;\r\n this.pdf.setFont(jsPdfFontName, style);\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"globalCompositeOperation\", {\r\n get: function() {\r\n return this.ctx.globalCompositeOperation;\r\n },\r\n set: function(value) {\r\n this.ctx.globalCompositeOperation = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"globalAlpha\", {\r\n get: function() {\r\n return this.ctx.globalAlpha;\r\n },\r\n set: function(value) {\r\n this.ctx.globalAlpha = value;\r\n }\r\n });\r\n\r\n /**\r\n * A float specifying the amount of the line dash offset. The default value is 0.0.\r\n *\r\n * @name lineDashOffset\r\n * @default 0.0\r\n */\r\n Object.defineProperty(this, \"lineDashOffset\", {\r\n get: function() {\r\n return this.ctx.lineDashOffset;\r\n },\r\n set: function(value) {\r\n this.ctx.lineDashOffset = value;\r\n setLineDash.call(this);\r\n }\r\n });\r\n\r\n // Not HTML API\r\n Object.defineProperty(this, \"lineDash\", {\r\n get: function() {\r\n return this.ctx.lineDash;\r\n },\r\n set: function(value) {\r\n this.ctx.lineDash = value;\r\n setLineDash.call(this);\r\n }\r\n });\r\n\r\n // Not HTML API\r\n Object.defineProperty(this, \"ignoreClearRect\", {\r\n get: function() {\r\n return this.ctx.ignoreClearRect;\r\n },\r\n set: function(value) {\r\n this.ctx.ignoreClearRect = Boolean(value);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Sets the line dash pattern used when stroking lines.\r\n * @name setLineDash\r\n * @function\r\n * @description It uses an array of values that specify alternating lengths of lines and gaps which describe the pattern.\r\n */\r\n Context2D.prototype.setLineDash = function(dashArray) {\r\n this.lineDash = dashArray;\r\n };\r\n\r\n /**\r\n * gets the current line dash pattern.\r\n * @name getLineDash\r\n * @function\r\n * @returns {Array} An Array of numbers that specify distances to alternately draw a line and a gap (in coordinate space units). If the number, when setting the elements, is odd, the elements of the array get copied and concatenated. For example, setting the line dash to [5, 15, 25] will result in getting back [5, 15, 25, 5, 15, 25].\r\n */\r\n Context2D.prototype.getLineDash = function() {\r\n if (this.lineDash.length % 2) {\r\n // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/getLineDash#return_value\r\n return this.lineDash.concat(this.lineDash);\r\n } else {\r\n // The copied value is returned to prevent contamination from outside.\r\n return this.lineDash.slice();\r\n }\r\n };\r\n\r\n Context2D.prototype.fill = function() {\r\n pathPreProcess.call(this, \"fill\", false);\r\n };\r\n\r\n /**\r\n * Actually draws the path you have defined\r\n *\r\n * @name stroke\r\n * @function\r\n * @description The stroke() method actually draws the path you have defined with all those moveTo() and lineTo() methods. The default color is black.\r\n */\r\n Context2D.prototype.stroke = function() {\r\n pathPreProcess.call(this, \"stroke\", false);\r\n };\r\n\r\n /**\r\n * Begins a path, or resets the current\r\n *\r\n * @name beginPath\r\n * @function\r\n * @description The beginPath() method begins a path, or resets the current path.\r\n */\r\n Context2D.prototype.beginPath = function() {\r\n this.path = [\r\n {\r\n type: \"begin\"\r\n }\r\n ];\r\n };\r\n\r\n /**\r\n * Moves the path to the specified point in the canvas, without creating a line\r\n *\r\n * @name moveTo\r\n * @function\r\n * @param x {Number} The x-coordinate of where to move the path to\r\n * @param y {Number} The y-coordinate of where to move the path to\r\n */\r\n Context2D.prototype.moveTo = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.moveTo: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");\r\n }\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n this.path.push({\r\n type: \"mt\",\r\n x: pt.x,\r\n y: pt.y\r\n });\r\n this.ctx.lastPoint = new Point(x, y);\r\n };\r\n\r\n /**\r\n * Creates a path from the current point back to the starting point\r\n *\r\n * @name closePath\r\n * @function\r\n * @description The closePath() method creates a path from the current point back to the starting point.\r\n */\r\n Context2D.prototype.closePath = function() {\r\n var pathBegin = new Point(0, 0);\r\n var i = 0;\r\n for (i = this.path.length - 1; i !== -1; i--) {\r\n if (this.path[i].type === \"begin\") {\r\n if (\r\n typeof this.path[i + 1] === \"object\" &&\r\n typeof this.path[i + 1].x === \"number\"\r\n ) {\r\n pathBegin = new Point(this.path[i + 1].x, this.path[i + 1].y);\r\n break;\r\n }\r\n }\r\n }\r\n this.path.push({\r\n type: \"close\"\r\n });\r\n this.ctx.lastPoint = new Point(pathBegin.x, pathBegin.y);\r\n };\r\n\r\n /**\r\n * Adds a new point and creates a line to that point from the last specified point in the canvas\r\n *\r\n * @name lineTo\r\n * @function\r\n * @param x The x-coordinate of where to create the line to\r\n * @param y The y-coordinate of where to create the line to\r\n * @description The lineTo() method adds a new point and creates a line TO that point FROM the last specified point in the canvas (this method does not draw the line).\r\n */\r\n Context2D.prototype.lineTo = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.lineTo: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");\r\n }\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n this.path.push({\r\n type: \"lt\",\r\n x: pt.x,\r\n y: pt.y\r\n });\r\n this.ctx.lastPoint = new Point(pt.x, pt.y);\r\n };\r\n\r\n /**\r\n * Clips a region of any shape and size from the original canvas\r\n *\r\n * @name clip\r\n * @function\r\n * @description The clip() method clips a region of any shape and size from the original canvas.\r\n */\r\n Context2D.prototype.clip = function() {\r\n this.ctx.clip_path = JSON.parse(JSON.stringify(this.path));\r\n pathPreProcess.call(this, null, true);\r\n };\r\n\r\n /**\r\n * Creates a cubic Bézier curve\r\n *\r\n * @name quadraticCurveTo\r\n * @function\r\n * @param cpx {Number} The x-coordinate of the Bézier control point\r\n * @param cpy {Number} The y-coordinate of the Bézier control point\r\n * @param x {Number} The x-coordinate of the ending point\r\n * @param y {Number} The y-coordinate of the ending point\r\n * @description The quadraticCurveTo() method adds a point to the current path by using the specified control points that represent a quadratic Bézier curve.

    A quadratic Bézier curve requires two points. The first point is a control point that is used in the quadratic Bézier calculation and the second point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n */\r\n Context2D.prototype.quadraticCurveTo = function(cpx, cpy, x, y) {\r\n if (isNaN(x) || isNaN(y) || isNaN(cpx) || isNaN(cpy)) {\r\n console.error(\r\n \"jsPDF.context2d.quadraticCurveTo: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\"\r\n );\r\n }\r\n\r\n var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n var pt1 = this.ctx.transform.applyToPoint(new Point(cpx, cpy));\r\n\r\n this.path.push({\r\n type: \"qct\",\r\n x1: pt1.x,\r\n y1: pt1.y,\r\n x: pt0.x,\r\n y: pt0.y\r\n });\r\n this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n };\r\n\r\n /**\r\n * Creates a cubic Bézier curve\r\n *\r\n * @name bezierCurveTo\r\n * @function\r\n * @param cp1x {Number} The x-coordinate of the first Bézier control point\r\n * @param cp1y {Number} The y-coordinate of the first Bézier control point\r\n * @param cp2x {Number} The x-coordinate of the second Bézier control point\r\n * @param cp2y {Number} The y-coordinate of the second Bézier control point\r\n * @param x {Number} The x-coordinate of the ending point\r\n * @param y {Number} The y-coordinate of the ending point\r\n * @description The bezierCurveTo() method adds a point to the current path by using the specified control points that represent a cubic Bézier curve.

    A cubic bezier curve requires three points. The first two points are control points that are used in the cubic Bézier calculation and the last point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n */\r\n Context2D.prototype.bezierCurveTo = function(cp1x, cp1y, cp2x, cp2y, x, y) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(cp1x) ||\r\n isNaN(cp1y) ||\r\n isNaN(cp2x) ||\r\n isNaN(cp2y)\r\n ) {\r\n console.error(\r\n \"jsPDF.context2d.bezierCurveTo: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\"\r\n );\r\n }\r\n var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n var pt1 = this.ctx.transform.applyToPoint(new Point(cp1x, cp1y));\r\n var pt2 = this.ctx.transform.applyToPoint(new Point(cp2x, cp2y));\r\n\r\n this.path.push({\r\n type: \"bct\",\r\n x1: pt1.x,\r\n y1: pt1.y,\r\n x2: pt2.x,\r\n y2: pt2.y,\r\n x: pt0.x,\r\n y: pt0.y\r\n });\r\n this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n };\r\n\r\n /**\r\n * Creates an arc/curve (used to create circles, or parts of circles)\r\n *\r\n * @name arc\r\n * @function\r\n * @param x {Number} The x-coordinate of the center of the circle\r\n * @param y {Number} The y-coordinate of the center of the circle\r\n * @param radius {Number} The radius of the circle\r\n * @param startAngle {Number} The starting angle, in radians (0 is at the 3 o'clock position of the arc's circle)\r\n * @param endAngle {Number} The ending angle, in radians\r\n * @param counterclockwise {Boolean} Optional. Specifies whether the drawing should be counterclockwise or clockwise. False is default, and indicates clockwise, while true indicates counter-clockwise.\r\n * @description The arc() method creates an arc/curve (used to create circles, or parts of circles).\r\n */\r\n Context2D.prototype.arc = function(\r\n x,\r\n y,\r\n radius,\r\n startAngle,\r\n endAngle,\r\n counterclockwise\r\n ) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(radius) ||\r\n isNaN(startAngle) ||\r\n isNaN(endAngle)\r\n ) {\r\n console.error(\"jsPDF.context2d.arc: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");\r\n }\r\n counterclockwise = Boolean(counterclockwise);\r\n\r\n if (!this.ctx.transform.isIdentity) {\r\n var xpt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n x = xpt.x;\r\n y = xpt.y;\r\n\r\n var x_radPt = this.ctx.transform.applyToPoint(new Point(0, radius));\r\n var x_radPt0 = this.ctx.transform.applyToPoint(new Point(0, 0));\r\n radius = Math.sqrt(\r\n Math.pow(x_radPt.x - x_radPt0.x, 2) +\r\n Math.pow(x_radPt.y - x_radPt0.y, 2)\r\n );\r\n }\r\n if (Math.abs(endAngle - startAngle) >= 2 * Math.PI) {\r\n startAngle = 0;\r\n endAngle = 2 * Math.PI;\r\n }\r\n\r\n this.path.push({\r\n type: \"arc\",\r\n x: x,\r\n y: y,\r\n radius: radius,\r\n startAngle: startAngle,\r\n endAngle: endAngle,\r\n counterclockwise: counterclockwise\r\n });\r\n // this.ctx.lastPoint(new Point(pt.x,pt.y));\r\n };\r\n\r\n /**\r\n * Creates an arc/curve between two tangents\r\n *\r\n * @name arcTo\r\n * @function\r\n * @param x1 {Number} The x-coordinate of the first tangent\r\n * @param y1 {Number} The y-coordinate of the first tangent\r\n * @param x2 {Number} The x-coordinate of the second tangent\r\n * @param y2 {Number} The y-coordinate of the second tangent\r\n * @param radius The radius of the arc\r\n * @description The arcTo() method creates an arc/curve between two tangents on the canvas.\r\n */\r\n // eslint-disable-next-line no-unused-vars\r\n Context2D.prototype.arcTo = function(x1, y1, x2, y2, radius) {\r\n throw new Error(\"arcTo not implemented.\");\r\n };\r\n\r\n /**\r\n * Creates a rectangle\r\n *\r\n * @name rect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The rect() method creates a rectangle.\r\n */\r\n Context2D.prototype.rect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.rect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");\r\n }\r\n this.moveTo(x, y);\r\n this.lineTo(x + w, y);\r\n this.lineTo(x + w, y + h);\r\n this.lineTo(x, y + h);\r\n this.lineTo(x, y);\r\n this.lineTo(x + w, y);\r\n this.lineTo(x, y);\r\n };\r\n\r\n /**\r\n * Draws a \"filled\" rectangle\r\n *\r\n * @name fillRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The fillRect() method draws a \"filled\" rectangle. The default color of the fill is black.\r\n */\r\n Context2D.prototype.fillRect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.fillRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");\r\n }\r\n if (isFillTransparent.call(this)) {\r\n return;\r\n }\r\n var tmp = {};\r\n if (this.lineCap !== \"butt\") {\r\n tmp.lineCap = this.lineCap;\r\n this.lineCap = \"butt\";\r\n }\r\n if (this.lineJoin !== \"miter\") {\r\n tmp.lineJoin = this.lineJoin;\r\n this.lineJoin = \"miter\";\r\n }\r\n\r\n this.beginPath();\r\n this.rect(x, y, w, h);\r\n this.fill();\r\n\r\n if (tmp.hasOwnProperty(\"lineCap\")) {\r\n this.lineCap = tmp.lineCap;\r\n }\r\n if (tmp.hasOwnProperty(\"lineJoin\")) {\r\n this.lineJoin = tmp.lineJoin;\r\n }\r\n };\r\n\r\n /**\r\n * Draws a rectangle (no fill)\r\n *\r\n * @name strokeRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The strokeRect() method draws a rectangle (no fill). The default color of the stroke is black.\r\n */\r\n Context2D.prototype.strokeRect = function strokeRect(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.strokeRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");\r\n }\r\n if (isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n this.beginPath();\r\n this.rect(x, y, w, h);\r\n this.stroke();\r\n };\r\n\r\n /**\r\n * Clears the specified pixels within a given rectangle\r\n *\r\n * @name clearRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle to clear, in pixels\r\n * @param h {Number} The height of the rectangle to clear, in pixels\r\n * @description We cannot clear PDF commands that were already written to PDF, so we use white instead.
    \r\n * As a special case, read a special flag (ignoreClearRect) and do nothing if it is set.\r\n * This results in all calls to clearRect() to do nothing, and keep the canvas transparent.\r\n * This flag is stored in the save/restore context and is managed the same way as other drawing states.\r\n *\r\n */\r\n Context2D.prototype.clearRect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.clearRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");\r\n }\r\n if (this.ignoreClearRect) {\r\n return;\r\n }\r\n\r\n this.fillStyle = \"#ffffff\";\r\n this.fillRect(x, y, w, h);\r\n };\r\n\r\n /**\r\n * Saves the state of the current context\r\n *\r\n * @name save\r\n * @function\r\n */\r\n Context2D.prototype.save = function(doStackPush) {\r\n doStackPush = typeof doStackPush === \"boolean\" ? doStackPush : true;\r\n var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n this.pdf.setPage(i + 1);\r\n this.pdf.internal.out(\"q\");\r\n }\r\n this.pdf.setPage(tmpPageNumber);\r\n\r\n if (doStackPush) {\r\n this.ctx.fontSize = this.pdf.internal.getFontSize();\r\n var ctx = new ContextLayer(this.ctx);\r\n this.ctxStack.push(this.ctx);\r\n this.ctx = ctx;\r\n }\r\n };\r\n\r\n /**\r\n * Returns previously saved path state and attributes\r\n *\r\n * @name restore\r\n * @function\r\n */\r\n Context2D.prototype.restore = function(doStackPop) {\r\n doStackPop = typeof doStackPop === \"boolean\" ? doStackPop : true;\r\n var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n this.pdf.setPage(i + 1);\r\n this.pdf.internal.out(\"Q\");\r\n }\r\n this.pdf.setPage(tmpPageNumber);\r\n\r\n if (doStackPop && this.ctxStack.length !== 0) {\r\n this.ctx = this.ctxStack.pop();\r\n this.fillStyle = this.ctx.fillStyle;\r\n this.strokeStyle = this.ctx.strokeStyle;\r\n this.font = this.ctx.font;\r\n this.lineCap = this.ctx.lineCap;\r\n this.lineWidth = this.ctx.lineWidth;\r\n this.lineJoin = this.ctx.lineJoin;\r\n this.lineDash = this.ctx.lineDash;\r\n this.lineDashOffset = this.ctx.lineDashOffset;\r\n }\r\n };\r\n\r\n /**\r\n * @name toDataURL\r\n * @function\r\n */\r\n Context2D.prototype.toDataURL = function() {\r\n throw new Error(\"toDataUrl not implemented.\");\r\n };\r\n\r\n //helper functions\r\n\r\n /**\r\n * Get the decimal values of r, g, b and a\r\n *\r\n * @name getRGBA\r\n * @function\r\n * @private\r\n * @ignore\r\n */\r\n var getRGBA = function(style) {\r\n var rxRgb = /rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/;\r\n var rxRgba = /rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)/;\r\n var rxTransparent = /transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/;\r\n\r\n var r, g, b, a;\r\n\r\n if (style.isCanvasGradient === true) {\r\n style = style.getColor();\r\n }\r\n\r\n if (!style) {\r\n return { r: 0, g: 0, b: 0, a: 0, style: style };\r\n }\r\n\r\n if (rxTransparent.test(style)) {\r\n r = 0;\r\n g = 0;\r\n b = 0;\r\n a = 0;\r\n } else {\r\n var matches = rxRgb.exec(style);\r\n if (matches !== null) {\r\n r = parseInt(matches[1]);\r\n g = parseInt(matches[2]);\r\n b = parseInt(matches[3]);\r\n a = 1;\r\n } else {\r\n matches = rxRgba.exec(style);\r\n if (matches !== null) {\r\n r = parseInt(matches[1]);\r\n g = parseInt(matches[2]);\r\n b = parseInt(matches[3]);\r\n a = parseFloat(matches[4]);\r\n } else {\r\n a = 1;\r\n\r\n if (typeof style === \"string\" && style.charAt(0) !== \"#\") {\r\n var rgbColor = new RGBColor(style);\r\n if (rgbColor.ok) {\r\n style = rgbColor.toHex();\r\n } else {\r\n style = \"#000000\";\r\n }\r\n }\r\n\r\n if (style.length === 4) {\r\n r = style.substring(1, 2);\r\n r += r;\r\n g = style.substring(2, 3);\r\n g += g;\r\n b = style.substring(3, 4);\r\n b += b;\r\n } else {\r\n r = style.substring(1, 3);\r\n g = style.substring(3, 5);\r\n b = style.substring(5, 7);\r\n }\r\n r = parseInt(r, 16);\r\n g = parseInt(g, 16);\r\n b = parseInt(b, 16);\r\n }\r\n }\r\n }\r\n return { r: r, g: g, b: b, a: a, style: style };\r\n };\r\n\r\n /**\r\n * @name isFillTransparent\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns {Boolean}\r\n */\r\n var isFillTransparent = function() {\r\n return this.ctx.isFillTransparent || this.globalAlpha == 0;\r\n };\r\n\r\n /**\r\n * @name isStrokeTransparent\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns {Boolean}\r\n */\r\n var isStrokeTransparent = function() {\r\n return Boolean(this.ctx.isStrokeTransparent || this.globalAlpha == 0);\r\n };\r\n\r\n /**\r\n * Draws \"filled\" text on the canvas\r\n *\r\n * @name fillText\r\n * @function\r\n * @param text {String} Specifies the text that will be written on the canvas\r\n * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n * @description The fillText() method draws filled text on the canvas. The default color of the text is black.\r\n */\r\n Context2D.prototype.fillText = function(text, x, y, maxWidth) {\r\n if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n console.error(\"jsPDF.context2d.fillText: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");\r\n }\r\n maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n if (isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var degs = rad2deg(this.ctx.transform.rotation);\r\n\r\n // We only use X axis as scale hint\r\n var scale = this.ctx.transform.scaleX;\r\n\r\n putText.call(this, {\r\n text: text,\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n angle: degs,\r\n align: this.textAlign,\r\n maxWidth: maxWidth\r\n });\r\n };\r\n\r\n /**\r\n * Draws text on the canvas (no fill)\r\n *\r\n * @name strokeText\r\n * @function\r\n * @param text {String} Specifies the text that will be written on the canvas\r\n * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n * @description The strokeText() method draws text (with no fill) on the canvas. The default color of the text is black.\r\n */\r\n Context2D.prototype.strokeText = function(text, x, y, maxWidth) {\r\n if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n console.error(\"jsPDF.context2d.strokeText: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");\r\n }\r\n if (isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n\r\n var degs = rad2deg(this.ctx.transform.rotation);\r\n var scale = this.ctx.transform.scaleX;\r\n\r\n putText.call(this, {\r\n text: text,\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n renderingMode: \"stroke\",\r\n angle: degs,\r\n align: this.textAlign,\r\n maxWidth: maxWidth\r\n });\r\n };\r\n\r\n /**\r\n * Returns an object that contains the width of the specified text\r\n *\r\n * @name measureText\r\n * @function\r\n * @param text {String} The text to be measured\r\n * @description The measureText() method returns an object that contains the width of the specified text, in pixels.\r\n * @returns {Number}\r\n */\r\n Context2D.prototype.measureText = function(text) {\r\n if (typeof text !== \"string\") {\r\n console.error(\r\n \"jsPDF.context2d.measureText: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.measureText\"\r\n );\r\n }\r\n var pdf = this.pdf;\r\n var k = this.pdf.internal.scaleFactor;\r\n\r\n var fontSize = pdf.internal.getFontSize();\r\n var txtWidth =\r\n (pdf.getStringUnitWidth(text) * fontSize) / pdf.internal.scaleFactor;\r\n txtWidth *= Math.round(((k * 96) / 72) * 10000) / 10000;\r\n\r\n var TextMetrics = function(options) {\r\n options = options || {};\r\n var _width = options.width || 0;\r\n Object.defineProperty(this, \"width\", {\r\n get: function() {\r\n return _width;\r\n }\r\n });\r\n return this;\r\n };\r\n return new TextMetrics({ width: txtWidth });\r\n };\r\n\r\n //Transformations\r\n\r\n /**\r\n * Scales the current drawing bigger or smaller\r\n *\r\n * @name scale\r\n * @function\r\n * @param scalewidth {Number} Scales the width of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n * @param scaleheight {Number} Scales the height of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n * @description The scale() method scales the current drawing, bigger or smaller.\r\n */\r\n Context2D.prototype.scale = function(scalewidth, scaleheight) {\r\n if (isNaN(scalewidth) || isNaN(scaleheight)) {\r\n console.error(\"jsPDF.context2d.scale: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");\r\n }\r\n var matrix = new Matrix(scalewidth, 0.0, 0.0, scaleheight, 0.0, 0.0);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Rotates the current drawing\r\n *\r\n * @name rotate\r\n * @function\r\n * @param angle {Number} The rotation angle, in radians.\r\n * @description To calculate from degrees to radians: degrees*Math.PI/180.
    \r\n * Example: to rotate 5 degrees, specify the following: 5*Math.PI/180\r\n */\r\n Context2D.prototype.rotate = function(angle) {\r\n if (isNaN(angle)) {\r\n console.error(\"jsPDF.context2d.rotate: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");\r\n }\r\n var matrix = new Matrix(\r\n Math.cos(angle),\r\n Math.sin(angle),\r\n -Math.sin(angle),\r\n Math.cos(angle),\r\n 0.0,\r\n 0.0\r\n );\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Remaps the (0,0) position on the canvas\r\n *\r\n * @name translate\r\n * @function\r\n * @param x {Number} The value to add to horizontal (x) coordinates\r\n * @param y {Number} The value to add to vertical (y) coordinates\r\n * @description The translate() method remaps the (0,0) position on the canvas.\r\n */\r\n Context2D.prototype.translate = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.translate: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");\r\n }\r\n var matrix = new Matrix(1.0, 0.0, 0.0, 1.0, x, y);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Replaces the current transformation matrix for the drawing\r\n *\r\n * @name transform\r\n * @function\r\n * @param a {Number} Horizontal scaling\r\n * @param b {Number} Horizontal skewing\r\n * @param c {Number} Vertical skewing\r\n * @param d {Number} Vertical scaling\r\n * @param e {Number} Horizontal moving\r\n * @param f {Number} Vertical moving\r\n * @description Each object on the canvas has a current transformation matrix.

    The transform() method replaces the current transformation matrix. It multiplies the current transformation matrix with the matrix described by:



    a c e

    b d f

    0 0 1

    In other words, the transform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.transform = function(a, b, c, d, e, f) {\r\n if (isNaN(a) || isNaN(b) || isNaN(c) || isNaN(d) || isNaN(e) || isNaN(f)) {\r\n console.error(\"jsPDF.context2d.transform: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");\r\n }\r\n var matrix = new Matrix(a, b, c, d, e, f);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Resets the current transform to the identity matrix. Then runs transform()\r\n *\r\n * @name setTransform\r\n * @function\r\n * @param a {Number} Horizontal scaling\r\n * @param b {Number} Horizontal skewing\r\n * @param c {Number} Vertical skewing\r\n * @param d {Number} Vertical scaling\r\n * @param e {Number} Horizontal moving\r\n * @param f {Number} Vertical moving\r\n * @description Each object on the canvas has a current transformation matrix.

    The setTransform() method resets the current transform to the identity matrix, and then runs transform() with the same arguments.

    In other words, the setTransform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.setTransform = function(a, b, c, d, e, f) {\r\n a = isNaN(a) ? 1 : a;\r\n b = isNaN(b) ? 0 : b;\r\n c = isNaN(c) ? 0 : c;\r\n d = isNaN(d) ? 1 : d;\r\n e = isNaN(e) ? 0 : e;\r\n f = isNaN(f) ? 0 : f;\r\n this.ctx.transform = new Matrix(a, b, c, d, e, f);\r\n };\r\n\r\n /**\r\n * Should only be used if pageWrapYEnabled is true\r\n *\r\n * @name setPageByYPosition\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns One-based Page Number\r\n */\r\n var setPageByYPosition = function(y) {\r\n if (this.pageWrapYEnabled) {\r\n this.lastBreak = 0;\r\n var manualBreaks = 0;\r\n var autoBreaks = 0;\r\n for (var i = 0; i < this.pageBreaks.length; i++) {\r\n if (y >= this.pageBreaks[i]) {\r\n manualBreaks++;\r\n if (this.lastBreak === 0) {\r\n autoBreaks++;\r\n }\r\n var spaceBetweenLastBreak = this.pageBreaks[i] - this.lastBreak;\r\n this.lastBreak = this.pageBreaks[i];\r\n var pagesSinceLastBreak = Math.floor(\r\n spaceBetweenLastBreak / this.pageWrapY\r\n );\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n }\r\n if (this.lastBreak === 0) {\r\n var pagesSinceLastBreak = Math.floor(y / this.pageWrapY) + 1;\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n return autoBreaks + manualBreaks;\r\n } else {\r\n return this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n }\r\n };\r\n\r\n var hasMargins = function() {\r\n return (\r\n this.margin[0] > 0 ||\r\n this.margin[1] > 0 ||\r\n this.margin[2] > 0 ||\r\n this.margin[3] > 0\r\n );\r\n };\r\n\r\n /**\r\n * Draws an image, canvas, or video onto the canvas\r\n *\r\n * @function\r\n * @param img {} Specifies the image, canvas, or video element to use\r\n * @param sx {Number} Optional. The x coordinate where to start clipping\r\n * @param sy {Number} Optional. The y coordinate where to start clipping\r\n * @param swidth {Number} Optional. The width of the clipped image\r\n * @param sheight {Number} Optional. The height of the clipped image\r\n * @param x {Number} The x coordinate where to place the image on the canvas\r\n * @param y {Number} The y coordinate where to place the image on the canvas\r\n * @param width {Number} Optional. The width of the image to use (stretch or reduce the image)\r\n * @param height {Number} Optional. The height of the image to use (stretch or reduce the image)\r\n */\r\n Context2D.prototype.drawImage = function(\r\n img,\r\n sx,\r\n sy,\r\n swidth,\r\n sheight,\r\n x,\r\n y,\r\n width,\r\n height\r\n ) {\r\n var imageProperties = this.pdf.getImageProperties(img);\r\n var factorX = 1;\r\n var factorY = 1;\r\n var isClip;\r\n\r\n var clipFactorX = 1;\r\n var clipFactorY = 1;\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width !== \"undefined\") {\r\n isClip = true;\r\n clipFactorX = width / swidth;\r\n clipFactorY = height / sheight;\r\n factorX = ((imageProperties.width / swidth) * width) / swidth;\r\n factorY = ((imageProperties.height / sheight) * height) / sheight;\r\n }\r\n\r\n //is sx and sy are set and x and y not, set x and y with values of sx and sy\r\n if (typeof x === \"undefined\") {\r\n x = sx;\r\n y = sy;\r\n sx = 0;\r\n sy = 0;\r\n }\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width === \"undefined\") {\r\n width = swidth;\r\n height = sheight;\r\n }\r\n if (typeof swidth === \"undefined\" && typeof width === \"undefined\") {\r\n width = imageProperties.width;\r\n height = imageProperties.height;\r\n }\r\n\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var angle = rad2deg(decomposedTransformationMatrix.rotate.shx);\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n var xRect = matrix.applyToRectangle(\r\n new Rectangle(\r\n x - sx * clipFactorX,\r\n y - sy * clipFactorY,\r\n swidth * factorX,\r\n sheight * factorY\r\n )\r\n );\r\n var pageArray = getPagesByPath.call(this, xRect);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var tmpRect = JSON.parse(JSON.stringify(xRect));\r\n tmpRect = pathPositionRedo(\r\n [tmpRect],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping = (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n tmpRect.x,\r\n tmpRect.y,\r\n tmpRect.w,\r\n tmpRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n xRect.x,\r\n xRect.y,\r\n xRect.w,\r\n xRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n }\r\n };\r\n\r\n var getPagesByPath = function(path, pageWrapX, pageWrapY) {\r\n var result = [];\r\n pageWrapX = pageWrapX || this.pdf.internal.pageSize.width;\r\n pageWrapY =\r\n pageWrapY ||\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var yOffset = this.posY + this.ctx.prevPageLastElemOffset;\r\n\r\n switch (path.type) {\r\n default:\r\n case \"mt\":\r\n case \"lt\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n break;\r\n case \"arc\":\r\n result.push(\r\n Math.floor((path.y + yOffset - path.radius) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor((path.y + yOffset + path.radius) / pageWrapY) + 1\r\n );\r\n break;\r\n case \"qct\":\r\n var rectOfQuadraticCurve = getQuadraticCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfQuadraticCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfQuadraticCurve.y + rectOfQuadraticCurve.h + yOffset) /\r\n pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"bct\":\r\n var rectOfBezierCurve = getBezierCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x2,\r\n path.y2,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfBezierCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfBezierCurve.y + rectOfBezierCurve.h + yOffset) / pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"rect\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n result.push(Math.floor((path.y + path.h + yOffset) / pageWrapY) + 1);\r\n }\r\n\r\n for (var i = 0; i < result.length; i += 1) {\r\n while (this.pdf.internal.getNumberOfPages() < result[i]) {\r\n addPage.call(this);\r\n }\r\n }\r\n return result;\r\n };\r\n\r\n var addPage = function() {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var font = this.font;\r\n var lineCap = this.lineCap;\r\n var lineWidth = this.lineWidth;\r\n var lineJoin = this.lineJoin;\r\n this.pdf.addPage();\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.font = font;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n };\r\n\r\n var pathPositionRedo = function(paths, x, y) {\r\n for (var i = 0; i < paths.length; i++) {\r\n switch (paths[i].type) {\r\n case \"bct\":\r\n paths[i].x2 += x;\r\n paths[i].y2 += y;\r\n case \"qct\":\r\n paths[i].x1 += x;\r\n paths[i].y1 += y;\r\n case \"mt\":\r\n case \"lt\":\r\n case \"arc\":\r\n default:\r\n paths[i].x += x;\r\n paths[i].y += y;\r\n }\r\n }\r\n return paths;\r\n };\r\n\r\n var sortPages = function(pages) {\r\n return pages.sort(function(a, b) {\r\n return a - b;\r\n });\r\n };\r\n\r\n var pathPreProcess = function(rule, isClip) {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var lineCap = this.lineCap;\r\n var oldLineWidth = this.lineWidth;\r\n var lineWidth = Math.abs(oldLineWidth * this.ctx.transform.scaleX);\r\n var lineJoin = this.lineJoin;\r\n\r\n var origPath = JSON.parse(JSON.stringify(this.path));\r\n var xPath = JSON.parse(JSON.stringify(this.path));\r\n var clipPath;\r\n var tmpPath;\r\n var pages = [];\r\n\r\n for (var i = 0; i < xPath.length; i++) {\r\n if (typeof xPath[i].x !== \"undefined\") {\r\n var page = getPagesByPath.call(this, xPath[i]);\r\n\r\n for (var ii = 0; ii < page.length; ii += 1) {\r\n if (pages.indexOf(page[ii]) === -1) {\r\n pages.push(page[ii]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var j = 0; j < pages.length; j++) {\r\n while (this.pdf.internal.getNumberOfPages() < pages[j]) {\r\n addPage.call(this);\r\n }\r\n }\r\n sortPages(pages);\r\n\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var k = min; k < max + 1; k++) {\r\n this.pdf.setPage(k);\r\n\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = k === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n k === 1 ? 0 : firstPageHeight + (k - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, rule, true);\r\n this.path = tmpPaths;\r\n }\r\n tmpPath = JSON.parse(JSON.stringify(origPath));\r\n this.path = pathPositionRedo(\r\n tmpPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n if (isClip === false || k === 0) {\r\n const needsClipping = (k > min || k < max) && hasMargins.call(this);\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n drawPaths.call(this, rule, isClip);\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n this.lineWidth = oldLineWidth;\r\n }\r\n } else {\r\n this.lineWidth = lineWidth;\r\n drawPaths.call(this, rule, isClip);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n this.path = origPath;\r\n };\r\n\r\n /**\r\n * Processes the paths\r\n *\r\n * @function\r\n * @param rule {String}\r\n * @param isClip {Boolean}\r\n * @private\r\n * @ignore\r\n */\r\n var drawPaths = function(rule, isClip) {\r\n if (rule === \"stroke\" && !isClip && isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n if (rule !== \"stroke\" && !isClip && isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var moves = [];\r\n\r\n //var alpha = (this.ctx.fillOpacity < 1) ? this.ctx.fillOpacity : this.ctx.globalAlpha;\r\n var delta;\r\n var xPath = this.path;\r\n for (var i = 0; i < xPath.length; i++) {\r\n var pt = xPath[i];\r\n\r\n switch (pt.type) {\r\n case \"begin\":\r\n moves.push({\r\n begin: true\r\n });\r\n break;\r\n\r\n case \"close\":\r\n moves.push({\r\n close: true\r\n });\r\n break;\r\n\r\n case \"mt\":\r\n moves.push({\r\n start: pt,\r\n deltas: [],\r\n abs: []\r\n });\r\n break;\r\n\r\n case \"lt\":\r\n var iii = moves.length;\r\n if (xPath[i - 1] && !isNaN(xPath[i - 1].x)) {\r\n delta = [pt.x - xPath[i - 1].x, pt.y - xPath[i - 1].y];\r\n if (iii > 0) {\r\n for (iii; iii >= 0; iii--) {\r\n if (\r\n moves[iii - 1].close !== true &&\r\n moves[iii - 1].begin !== true\r\n ) {\r\n moves[iii - 1].deltas.push(delta);\r\n moves[iii - 1].abs.push(pt);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case \"bct\":\r\n delta = [\r\n pt.x1 - xPath[i - 1].x,\r\n pt.y1 - xPath[i - 1].y,\r\n pt.x2 - xPath[i - 1].x,\r\n pt.y2 - xPath[i - 1].y,\r\n pt.x - xPath[i - 1].x,\r\n pt.y - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"qct\":\r\n var x1 = xPath[i - 1].x + (2.0 / 3.0) * (pt.x1 - xPath[i - 1].x);\r\n var y1 = xPath[i - 1].y + (2.0 / 3.0) * (pt.y1 - xPath[i - 1].y);\r\n var x2 = pt.x + (2.0 / 3.0) * (pt.x1 - pt.x);\r\n var y2 = pt.y + (2.0 / 3.0) * (pt.y1 - pt.y);\r\n var x3 = pt.x;\r\n var y3 = pt.y;\r\n delta = [\r\n x1 - xPath[i - 1].x,\r\n y1 - xPath[i - 1].y,\r\n x2 - xPath[i - 1].x,\r\n y2 - xPath[i - 1].y,\r\n x3 - xPath[i - 1].x,\r\n y3 - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"arc\":\r\n moves.push({\r\n deltas: [],\r\n abs: [],\r\n arc: true\r\n });\r\n\r\n if (Array.isArray(moves[moves.length - 1].abs)) {\r\n moves[moves.length - 1].abs.push(pt);\r\n }\r\n break;\r\n }\r\n }\r\n var style;\r\n if (!isClip) {\r\n if (rule === \"stroke\") {\r\n style = \"stroke\";\r\n } else {\r\n style = \"fill\";\r\n }\r\n } else {\r\n style = null;\r\n }\r\n\r\n var began = false;\r\n for (var k = 0; k < moves.length; k++) {\r\n if (moves[k].arc) {\r\n var arcs = moves[k].abs;\r\n\r\n for (var ii = 0; ii < arcs.length; ii++) {\r\n var arc = arcs[ii];\r\n\r\n if (arc.type === \"arc\") {\r\n drawArc.call(\r\n this,\r\n arc.x,\r\n arc.y,\r\n arc.radius,\r\n arc.startAngle,\r\n arc.endAngle,\r\n arc.counterclockwise,\r\n undefined,\r\n isClip,\r\n !began\r\n );\r\n } else {\r\n drawLine.call(this, arc.x, arc.y);\r\n }\r\n began = true;\r\n }\r\n } else if (moves[k].close === true) {\r\n this.pdf.internal.out(\"h\");\r\n began = false;\r\n } else if (moves[k].begin !== true) {\r\n var x = moves[k].start.x;\r\n var y = moves[k].start.y;\r\n drawLines.call(this, moves[k].deltas, x, y);\r\n began = true;\r\n }\r\n }\r\n\r\n if (style) {\r\n putStyle.call(this, style);\r\n }\r\n if (isClip) {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var getBaseline = function(y) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n switch (this.ctx.textBaseline) {\r\n case \"bottom\":\r\n return y - descent;\r\n case \"top\":\r\n return y + height - descent;\r\n case \"hanging\":\r\n return y + height - 2 * descent;\r\n case \"middle\":\r\n return y + height / 2 - descent;\r\n case \"ideographic\":\r\n // TODO not implemented\r\n return y;\r\n case \"alphabetic\":\r\n default:\r\n return y;\r\n }\r\n };\r\n\r\n var getTextBottom = function(yBaseLine) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n return yBaseLine + descent;\r\n };\r\n\r\n Context2D.prototype.createLinearGradient = function createLinearGradient() {\r\n var canvasGradient = function canvasGradient() {};\r\n\r\n canvasGradient.colorStops = [];\r\n canvasGradient.addColorStop = function(offset, color) {\r\n this.colorStops.push([offset, color]);\r\n };\r\n\r\n canvasGradient.getColor = function() {\r\n if (this.colorStops.length === 0) {\r\n return \"#000000\";\r\n }\r\n\r\n return this.colorStops[0][1];\r\n };\r\n\r\n canvasGradient.isCanvasGradient = true;\r\n return canvasGradient;\r\n };\r\n Context2D.prototype.createPattern = function createPattern() {\r\n return this.createLinearGradient();\r\n };\r\n Context2D.prototype.createRadialGradient = function createRadialGradient() {\r\n return this.createLinearGradient();\r\n };\r\n\r\n /**\r\n *\r\n * @param x Edge point X\r\n * @param y Edge point Y\r\n * @param r Radius\r\n * @param a1 start angle\r\n * @param a2 end angle\r\n * @param counterclockwise\r\n * @param style\r\n * @param isClip\r\n */\r\n var drawArc = function(\r\n x,\r\n y,\r\n r,\r\n a1,\r\n a2,\r\n counterclockwise,\r\n style,\r\n isClip,\r\n includeMove\r\n ) {\r\n // http://hansmuller-flex.blogspot.com/2011/10/more-about-approximating-circular-arcs.html\r\n var curves = createArc.call(this, r, a1, a2, counterclockwise);\r\n\r\n for (var i = 0; i < curves.length; i++) {\r\n var curve = curves[i];\r\n if (i === 0) {\r\n if (includeMove) {\r\n doMove.call(this, curve.x1 + x, curve.y1 + y);\r\n } else {\r\n drawLine.call(this, curve.x1 + x, curve.y1 + y);\r\n }\r\n }\r\n drawCurve.call(\r\n this,\r\n x,\r\n y,\r\n curve.x2,\r\n curve.y2,\r\n curve.x3,\r\n curve.y3,\r\n curve.x4,\r\n curve.y4\r\n );\r\n }\r\n\r\n if (!isClip) {\r\n putStyle.call(this, style);\r\n } else {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n switch (style) {\r\n case \"stroke\":\r\n this.pdf.internal.out(\"S\");\r\n break;\r\n case \"fill\":\r\n this.pdf.internal.out(\"f\");\r\n break;\r\n }\r\n };\r\n\r\n var doClip = function() {\r\n this.pdf.clip();\r\n this.pdf.discardPath();\r\n };\r\n\r\n var doMove = function(x, y) {\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x) +\r\n \" \" +\r\n getVerticalCoordinateString(y) +\r\n \" m\"\r\n );\r\n };\r\n\r\n var putText = function(options) {\r\n var textAlign;\r\n switch (options.align) {\r\n case \"right\":\r\n case \"end\":\r\n textAlign = \"right\";\r\n break;\r\n case \"center\":\r\n textAlign = \"center\";\r\n break;\r\n case \"left\":\r\n case \"start\":\r\n default:\r\n textAlign = \"left\";\r\n break;\r\n }\r\n\r\n var textDimensions = this.pdf.getTextDimensions(options.text);\r\n var yBaseLine = getBaseline.call(this, options.y);\r\n var yBottom = getTextBottom.call(this, yBaseLine);\r\n var yTop = yBottom - textDimensions.h;\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(options.x, yBaseLine));\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n\r\n var baselineRect = this.ctx.transform.applyToRectangle(\r\n new Rectangle(options.x, yBaseLine, textDimensions.w, textDimensions.h)\r\n );\r\n var textBounds = matrix.applyToRectangle(\r\n new Rectangle(options.x, yTop, textDimensions.w, textDimensions.h)\r\n );\r\n var pageArray = getPagesByPath.call(this, textBounds);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath, oldSize, oldLineWidth;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusBottomMargin =\r\n this.pdf.internal.pageSize.height - this.margin[2];\r\n var pageHeightMinusMargins =\r\n pageHeightMinusBottomMargin - this.margin[0];\r\n var pageWidthMinusRightMargin =\r\n this.pdf.internal.pageSize.width - this.margin[1];\r\n var pageWidthMinusMargins = pageWidthMinusRightMargin - this.margin[3];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -1 * previousPageHeightSum + topMargin\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var textBoundsOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(textBounds))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n\r\n var doSlice = this.autoPaging !== \"text\";\r\n\r\n if (\r\n doSlice ||\r\n textBoundsOnPage.y + textBoundsOnPage.h <= pageHeightMinusBottomMargin\r\n ) {\r\n if (\r\n doSlice ||\r\n (textBoundsOnPage.y >= topMargin &&\r\n textBoundsOnPage.x <= pageWidthMinusRightMargin)\r\n ) {\r\n var croppedText = doSlice\r\n ? options.text\r\n : this.pdf.splitTextToSize(\r\n options.text,\r\n options.maxWidth ||\r\n pageWidthMinusRightMargin - textBoundsOnPage.x\r\n )[0];\r\n var baseLineRectOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(baselineRect))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum +\r\n topMargin +\r\n this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping =\r\n doSlice && (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n\r\n this.pdf.text(\r\n croppedText,\r\n baseLineRectOnPage.x,\r\n baseLineRectOnPage.y,\r\n {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode\r\n }\r\n );\r\n\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n // This text is the last element of the page, but it got cut off due to the margin\r\n // so we render it in the next page\r\n\r\n if (textBoundsOnPage.y < pageHeightMinusBottomMargin) {\r\n // As a result, all other elements have their y offset increased\r\n this.ctx.prevPageLastElemOffset +=\r\n pageHeightMinusBottomMargin - textBoundsOnPage.y;\r\n }\r\n }\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n } else {\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n this.pdf.text(options.text, pt.x + this.posX, pt.y + this.posY, {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode,\r\n maxWidth: options.maxWidth\r\n });\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n };\r\n\r\n var drawLine = function(x, y, prevX, prevY) {\r\n prevX = prevX || 0;\r\n prevY = prevY || 0;\r\n\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x + prevX) +\r\n \" \" +\r\n getVerticalCoordinateString(y + prevY) +\r\n \" l\"\r\n );\r\n };\r\n\r\n var drawLines = function(lines, x, y) {\r\n return this.pdf.lines(lines, x, y, null, null);\r\n };\r\n\r\n var drawCurve = function(x, y, x1, y1, x2, y2, x3, y3) {\r\n this.pdf.internal.out(\r\n [\r\n f2(getHorizontalCoordinate(x1 + x)),\r\n f2(getVerticalCoordinate(y1 + y)),\r\n f2(getHorizontalCoordinate(x2 + x)),\r\n f2(getVerticalCoordinate(y2 + y)),\r\n f2(getHorizontalCoordinate(x3 + x)),\r\n f2(getVerticalCoordinate(y3 + y)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n };\r\n\r\n /**\r\n * Return a array of objects that represent bezier curves which approximate the circular arc centered at the origin, from startAngle to endAngle (radians) with the specified radius.\r\n *\r\n * Each bezier curve is an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n * @function createArc\r\n */\r\n var createArc = function(radius, startAngle, endAngle, anticlockwise) {\r\n var EPSILON = 0.00001; // Roughly 1/1000th of a degree, see below\r\n var twoPi = Math.PI * 2;\r\n var halfPi = Math.PI / 2.0;\r\n\r\n while (startAngle > endAngle) {\r\n startAngle = startAngle - twoPi;\r\n }\r\n var totalAngle = Math.abs(endAngle - startAngle);\r\n if (totalAngle < twoPi) {\r\n if (anticlockwise) {\r\n totalAngle = twoPi - totalAngle;\r\n }\r\n }\r\n\r\n // Compute the sequence of arc curves, up to PI/2 at a time.\r\n var curves = [];\r\n\r\n // clockwise or counterclockwise\r\n var sgn = anticlockwise ? -1 : +1;\r\n\r\n var a1 = startAngle;\r\n for (; totalAngle > EPSILON; ) {\r\n var remain = sgn * Math.min(totalAngle, halfPi);\r\n var a2 = a1 + remain;\r\n curves.push(createSmallArc.call(this, radius, a1, a2));\r\n totalAngle -= Math.abs(a2 - a1);\r\n a1 = a2;\r\n }\r\n\r\n return curves;\r\n };\r\n\r\n /**\r\n * Cubic bezier approximation of a circular arc centered at the origin, from (radians) a1 to a2, where a2-a1 < pi/2. The arc's radius is r.\r\n *\r\n * Returns an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n *\r\n * This algorithm is based on the approach described in: A. Riškus, \"Approximation of a Cubic Bezier Curve by Circular Arcs and Vice Versa,\" Information Technology and Control, 35(4), 2006 pp. 371-378.\r\n */\r\n var createSmallArc = function(r, a1, a2) {\r\n var a = (a2 - a1) / 2.0;\r\n\r\n var x4 = r * Math.cos(a);\r\n var y4 = r * Math.sin(a);\r\n var x1 = x4;\r\n var y1 = -y4;\r\n\r\n var q1 = x1 * x1 + y1 * y1;\r\n var q2 = q1 + x1 * x4 + y1 * y4;\r\n var k2 = ((4 / 3) * (Math.sqrt(2 * q1 * q2) - q2)) / (x1 * y4 - y1 * x4);\r\n\r\n var x2 = x1 - k2 * y1;\r\n var y2 = y1 + k2 * x1;\r\n var x3 = x2;\r\n var y3 = -y2;\r\n\r\n var ar = a + a1;\r\n var cos_ar = Math.cos(ar);\r\n var sin_ar = Math.sin(ar);\r\n\r\n return {\r\n x1: r * Math.cos(a1),\r\n y1: r * Math.sin(a1),\r\n x2: x2 * cos_ar - y2 * sin_ar,\r\n y2: x2 * sin_ar + y2 * cos_ar,\r\n x3: x3 * cos_ar - y3 * sin_ar,\r\n y3: x3 * sin_ar + y3 * cos_ar,\r\n x4: r * Math.cos(a2),\r\n y4: r * Math.sin(a2)\r\n };\r\n };\r\n\r\n var rad2deg = function(value) {\r\n return (value * 180) / Math.PI;\r\n };\r\n\r\n var getQuadraticCurveBoundary = function(sx, sy, cpx, cpy, ex, ey) {\r\n var midX1 = sx + (cpx - sx) * 0.5;\r\n var midY1 = sy + (cpy - sy) * 0.5;\r\n var midX2 = ex + (cpx - ex) * 0.5;\r\n var midY2 = ey + (cpy - ey) * 0.5;\r\n var resultX1 = Math.min(sx, ex, midX1, midX2);\r\n var resultX2 = Math.max(sx, ex, midX1, midX2);\r\n var resultY1 = Math.min(sy, ey, midY1, midY2);\r\n var resultY2 = Math.max(sy, ey, midY1, midY2);\r\n return new Rectangle(\r\n resultX1,\r\n resultY1,\r\n resultX2 - resultX1,\r\n resultY2 - resultY1\r\n );\r\n };\r\n\r\n //De Casteljau algorithm\r\n var getBezierCurveBoundary = function(ax, ay, bx, by, cx, cy, dx, dy) {\r\n var tobx = bx - ax;\r\n var toby = by - ay;\r\n var tocx = cx - bx;\r\n var tocy = cy - by;\r\n var todx = dx - cx;\r\n var tody = dy - cy;\r\n var precision = 40;\r\n var d,\r\n i,\r\n px,\r\n py,\r\n qx,\r\n qy,\r\n rx,\r\n ry,\r\n tx,\r\n ty,\r\n sx,\r\n sy,\r\n x,\r\n y,\r\n minx,\r\n miny,\r\n maxx,\r\n maxy,\r\n toqx,\r\n toqy,\r\n torx,\r\n tory,\r\n totx,\r\n toty;\r\n for (i = 0; i < precision + 1; i++) {\r\n d = i / precision;\r\n px = ax + d * tobx;\r\n py = ay + d * toby;\r\n qx = bx + d * tocx;\r\n qy = by + d * tocy;\r\n rx = cx + d * todx;\r\n ry = cy + d * tody;\r\n toqx = qx - px;\r\n toqy = qy - py;\r\n torx = rx - qx;\r\n tory = ry - qy;\r\n\r\n sx = px + d * toqx;\r\n sy = py + d * toqy;\r\n tx = qx + d * torx;\r\n ty = qy + d * tory;\r\n totx = tx - sx;\r\n toty = ty - sy;\r\n\r\n x = sx + d * totx;\r\n y = sy + d * toty;\r\n if (i == 0) {\r\n minx = x;\r\n miny = y;\r\n maxx = x;\r\n maxy = y;\r\n } else {\r\n minx = Math.min(minx, x);\r\n miny = Math.min(miny, y);\r\n maxx = Math.max(maxx, x);\r\n maxy = Math.max(maxy, y);\r\n }\r\n }\r\n return new Rectangle(\r\n Math.round(minx),\r\n Math.round(miny),\r\n Math.round(maxx - minx),\r\n Math.round(maxy - miny)\r\n );\r\n };\r\n\r\n var getPrevLineDashValue = function(lineDash, lineDashOffset) {\r\n return JSON.stringify({\r\n lineDash: lineDash,\r\n lineDashOffset: lineDashOffset\r\n });\r\n };\r\n\r\n var setLineDash = function() {\r\n // Avoid unnecessary line dash declarations.\r\n if (\r\n !this.prevLineDash &&\r\n !this.ctx.lineDash.length &&\r\n !this.ctx.lineDashOffset\r\n ) {\r\n return;\r\n }\r\n\r\n // Avoid unnecessary line dash declarations.\r\n const nextLineDash = getPrevLineDashValue(\r\n this.ctx.lineDash,\r\n this.ctx.lineDashOffset\r\n );\r\n if (this.prevLineDash !== nextLineDash) {\r\n this.pdf.setLineDash(this.ctx.lineDash, this.ctx.lineDashOffset);\r\n this.prevLineDash = nextLineDash;\r\n }\r\n };\r\n})(jsPDF.API);\r\n","/**\n * @license\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var ASCII85Encode = function(a) {\n var b, c, d, e, f, g, h, i, j, k;\n // eslint-disable-next-line no-control-regex\n for (\n !/[^\\x00-\\xFF]/.test(a),\n b = \"\\x00\\x00\\x00\\x00\".slice(a.length % 4 || 4),\n a += b,\n c = [],\n d = 0,\n e = a.length;\n e > d;\n d += 4\n )\n (f =\n (a.charCodeAt(d) << 24) +\n (a.charCodeAt(d + 1) << 16) +\n (a.charCodeAt(d + 2) << 8) +\n a.charCodeAt(d + 3)),\n 0 !== f\n ? ((k = f % 85),\n (f = (f - k) / 85),\n (j = f % 85),\n (f = (f - j) / 85),\n (i = f % 85),\n (f = (f - i) / 85),\n (h = f % 85),\n (f = (f - h) / 85),\n (g = f % 85),\n c.push(g + 33, h + 33, i + 33, j + 33, k + 33))\n : c.push(122);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(c, b.length),\n String.fromCharCode.apply(String, c) + \"~>\"\n );\n };\n\n var ASCII85Decode = function(a) {\n var c,\n d,\n e,\n f,\n g,\n h = String,\n l = \"length\",\n w = 255,\n x = \"charCodeAt\",\n y = \"slice\",\n z = \"replace\";\n for (\n \"~>\" === a[y](-2),\n a = a[y](0, -2)\n [z](/\\s/g, \"\")\n [z](\"z\", \"!!!!!\"),\n c = \"uuuuu\"[y](a[l] % 5 || 5),\n a += c,\n e = [],\n f = 0,\n g = a[l];\n g > f;\n f += 5\n )\n (d =\n 52200625 * (a[x](f) - 33) +\n 614125 * (a[x](f + 1) - 33) +\n 7225 * (a[x](f + 2) - 33) +\n 85 * (a[x](f + 3) - 33) +\n (a[x](f + 4) - 33)),\n e.push(w & (d >> 24), w & (d >> 16), w & (d >> 8), w & d);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(e, c[l]),\n h.fromCharCode.apply(h, e)\n );\n };\n\n var ASCIIHexEncode = function(value) {\n return (\n value\n .split(\"\")\n .map(function(value) {\n return (\"0\" + value.charCodeAt().toString(16)).slice(-2);\n })\n .join(\"\") + \">\"\n );\n };\n\n var ASCIIHexDecode = function(value) {\n var regexCheckIfHex = new RegExp(/^([0-9A-Fa-f]{2})+$/);\n value = value.replace(/\\s/g, \"\");\n if (value.indexOf(\">\") !== -1) {\n value = value.substr(0, value.indexOf(\">\"));\n }\n if (value.length % 2) {\n value += \"0\";\n }\n if (regexCheckIfHex.test(value) === false) {\n return \"\";\n }\n var result = \"\";\n for (var i = 0; i < value.length; i += 2) {\n result += String.fromCharCode(\"0x\" + (value[i] + value[i + 1]));\n }\n return result;\n };\n /*\n var FlatePredictors = {\n None: 1,\n TIFF: 2,\n PNG_None: 10,\n PNG_Sub: 11,\n PNG_Up: 12,\n PNG_Average: 13,\n PNG_Paeth: 14,\n PNG_Optimum: 15\n };\n */\n\n var FlateEncode = function(data) {\n var arr = new Uint8Array(data.length);\n var i = data.length;\n while (i--) {\n arr[i] = data.charCodeAt(i);\n }\n arr = zlibSync(arr);\n data = arr.reduce(function(data, byte) {\n return data + String.fromCharCode(byte);\n }, \"\");\n return data;\n };\n\n jsPDFAPI.processDataByFilters = function(origData, filterChain) {\n \"use strict\";\n var i = 0;\n var data = origData || \"\";\n var reverseChain = [];\n filterChain = filterChain || [];\n\n if (typeof filterChain === \"string\") {\n filterChain = [filterChain];\n }\n\n for (i = 0; i < filterChain.length; i += 1) {\n switch (filterChain[i]) {\n case \"ASCII85Decode\":\n case \"/ASCII85Decode\":\n data = ASCII85Decode(data);\n reverseChain.push(\"/ASCII85Encode\");\n break;\n case \"ASCII85Encode\":\n case \"/ASCII85Encode\":\n data = ASCII85Encode(data);\n reverseChain.push(\"/ASCII85Decode\");\n break;\n case \"ASCIIHexDecode\":\n case \"/ASCIIHexDecode\":\n data = ASCIIHexDecode(data);\n reverseChain.push(\"/ASCIIHexEncode\");\n break;\n case \"ASCIIHexEncode\":\n case \"/ASCIIHexEncode\":\n data = ASCIIHexEncode(data);\n reverseChain.push(\"/ASCIIHexDecode\");\n break;\n case \"FlateEncode\":\n case \"/FlateEncode\":\n data = FlateEncode(data);\n reverseChain.push(\"/FlateDecode\");\n break;\n default:\n throw new Error(\n 'The filter: \"' + filterChain[i] + '\" is not implemented'\n );\n }\n }\n\n return { data: data, reverseChain: reverseChain.reverse().join(\" \") };\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name fileloading\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name loadFile\n * @function\n * @param {string} url\n * @param {boolean} sync\n * @param {function} callback\n * @returns {string|undefined} result\n */\n jsPDFAPI.loadFile = function(url, sync, callback) {\n return browserRequest(url, sync, callback);\n\n };\n\n /**\n * @name loadImageFile\n * @function\n * @param {string} path\n * @param {boolean} sync\n * @param {function} callback\n */\n jsPDFAPI.loadImageFile = jsPDFAPI.loadFile;\n\n function browserRequest(url, sync, callback) {\n sync = sync === false ? false : true;\n callback = typeof callback === \"function\" ? callback : function() {};\n var result = undefined;\n\n var xhr = function(url, sync, callback) {\n var request = new XMLHttpRequest();\n var i = 0;\n\n var sanitizeUnicode = function(data) {\n var dataLength = data.length;\n var charArray = [];\n var StringFromCharCode = String.fromCharCode;\n\n //Transform Unicode to ASCII\n for (i = 0; i < dataLength; i += 1) {\n charArray.push(StringFromCharCode(data.charCodeAt(i) & 0xff));\n }\n return charArray.join(\"\");\n };\n\n request.open(\"GET\", url, !sync);\n // XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]\n request.overrideMimeType(\"text/plain; charset=x-user-defined\");\n\n if (sync === false) {\n request.onload = function() {\n if (request.status === 200) {\n callback(sanitizeUnicode(this.responseText));\n } else {\n callback(undefined);\n }\n };\n }\n request.send(null);\n\n if (sync && request.status === 200) {\n return sanitizeUnicode(request.responseText);\n }\n };\n try {\n result = xhr(url, sync, callback);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n return result;\n }\n\n function nodeReadFile(url, sync, callback) {\n sync = sync === false ? false : true;\n var result = undefined;\n\n var fs = require(\"fs\");\n var path = require(\"path\");\n\n url = path.resolve(url);\n if (sync) {\n try {\n result = fs.readFileSync(url, { encoding: \"latin1\" });\n } catch (e) {\n return undefined;\n }\n } else {\n fs.readFile(url, { encoding: \"latin1\" }, function(err, data) {\n if (!callback) {\n return;\n }\n if (err) {\n callback(undefined);\n }\n callback(data);\n });\n }\n\n return result;\n }\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2018 Erik Koopmans\n * Released under the MIT License.\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { normalizeFontFace } from \"../libs/fontFace.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF html PlugIn\n *\n * @name html\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadHtml2Canvas() {\n return (function() {\n if (globalObject[\"html2canvas\"]) {\n return Promise.resolve(globalObject[\"html2canvas\"]);\n }\n\n return import(\"html2canvas\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load html2canvas: \" + e));\n })\n .then(function(html2canvas) {\n return html2canvas.default ? html2canvas.default : html2canvas;\n });\n }\n\n function loadDomPurify() {\n return (function() {\n if (globalObject[\"DOMPurify\"]) {\n return Promise.resolve(globalObject[\"DOMPurify\"]);\n }\n\n return import(\"dompurify\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load dompurify: \" + e));\n })\n .then(function(dompurify) {\n return dompurify.default ? dompurify.default : dompurify;\n });\n }\n\n /**\n * Determine the type of a variable/object.\n *\n * @private\n * @ignore\n */\n var objType = function(obj) {\n var type = typeof obj;\n if (type === \"undefined\") return \"undefined\";\n else if (type === \"string\" || obj instanceof String) return \"string\";\n else if (type === \"number\" || obj instanceof Number) return \"number\";\n else if (type === \"function\" || obj instanceof Function) return \"function\";\n else if (!!obj && obj.constructor === Array) return \"array\";\n else if (obj && obj.nodeType === 1) return \"element\";\n else if (type === \"object\") return \"object\";\n else return \"unknown\";\n };\n\n /**\n * Create an HTML element with optional className, innerHTML, and style.\n *\n * @private\n * @ignore\n */\n var createElement = function(tagName, opt) {\n var el = document.createElement(tagName);\n if (opt.className) el.className = opt.className;\n if (opt.innerHTML && opt.dompurify) {\n el.innerHTML = opt.dompurify.sanitize(opt.innerHTML);\n }\n for (var key in opt.style) {\n el.style[key] = opt.style[key];\n }\n return el;\n };\n\n /**\n * Deep-clone a node and preserve contents/properties.\n *\n * @private\n * @ignore\n */\n var cloneNode = function(node, javascriptEnabled) {\n // Recursively clone the node.\n var clone =\n node.nodeType === 3\n ? document.createTextNode(node.nodeValue)\n : node.cloneNode(false);\n for (var child = node.firstChild; child; child = child.nextSibling) {\n if (\n javascriptEnabled === true ||\n child.nodeType !== 1 ||\n child.nodeName !== \"SCRIPT\"\n ) {\n clone.appendChild(cloneNode(child, javascriptEnabled));\n }\n }\n\n if (node.nodeType === 1) {\n // Preserve contents/properties of special nodes.\n if (node.nodeName === \"CANVAS\") {\n clone.width = node.width;\n clone.height = node.height;\n clone.getContext(\"2d\").drawImage(node, 0, 0);\n } else if (node.nodeName === \"TEXTAREA\" || node.nodeName === \"SELECT\") {\n clone.value = node.value;\n }\n\n // Preserve the node's scroll position when it loads.\n clone.addEventListener(\n \"load\",\n function() {\n clone.scrollTop = node.scrollTop;\n clone.scrollLeft = node.scrollLeft;\n },\n true\n );\n }\n\n // Return the cloned node.\n return clone;\n };\n\n /* ----- CONSTRUCTOR ----- */\n\n var Worker = function Worker(opt) {\n // Create the root parent for the proto chain, and the starting Worker.\n var root = Object.assign(\n Worker.convert(Promise.resolve()),\n JSON.parse(JSON.stringify(Worker.template))\n );\n var self = Worker.convert(Promise.resolve(), root);\n\n // Set progress, optional settings, and return.\n self = self.setProgress(1, Worker, 1, [Worker]);\n self = self.set(opt);\n return self;\n };\n\n // Boilerplate for subclassing Promise.\n Worker.prototype = Object.create(Promise.prototype);\n Worker.prototype.constructor = Worker;\n\n // Converts/casts promises into Workers.\n Worker.convert = function convert(promise, inherit) {\n // Uses prototypal inheritance to receive changes made to ancestors' properties.\n promise.__proto__ = inherit || Worker.prototype;\n return promise;\n };\n\n Worker.template = {\n prop: {\n src: null,\n container: null,\n overlay: null,\n canvas: null,\n img: null,\n pdf: null,\n pageSize: null,\n callback: function() {}\n },\n progress: {\n val: 0,\n state: null,\n n: 0,\n stack: []\n },\n opt: {\n filename: \"file.pdf\",\n margin: [0, 0, 0, 0],\n enableLinks: true,\n x: 0,\n y: 0,\n html2canvas: {},\n jsPDF: {},\n backgroundColor: \"transparent\"\n }\n };\n\n /* ----- FROM / TO ----- */\n\n Worker.prototype.from = function from(src, type) {\n function getType(src) {\n switch (objType(src)) {\n case \"string\":\n return \"string\";\n case \"element\":\n return src.nodeName.toLowerCase() === \"canvas\" ? \"canvas\" : \"element\";\n default:\n return \"unknown\";\n }\n }\n\n return this.then(function from_main() {\n type = type || getType(src);\n switch (type) {\n case \"string\":\n return this.then(loadDomPurify).then(function(dompurify) {\n return this.set({\n src: createElement(\"div\", {\n innerHTML: src,\n dompurify: dompurify\n })\n });\n });\n case \"element\":\n return this.set({ src: src });\n case \"canvas\":\n return this.set({ canvas: src });\n case \"img\":\n return this.set({ img: src });\n default:\n return this.error(\"Unknown source type.\");\n }\n });\n };\n\n Worker.prototype.to = function to(target) {\n // Route the 'to' request to the appropriate method.\n switch (target) {\n case \"container\":\n return this.toContainer();\n case \"canvas\":\n return this.toCanvas();\n case \"img\":\n return this.toImg();\n case \"pdf\":\n return this.toPdf();\n default:\n return this.error(\"Invalid target.\");\n }\n };\n\n Worker.prototype.toContainer = function toContainer() {\n // Set up function prerequisites.\n var prereqs = [\n function checkSrc() {\n return (\n this.prop.src || this.error(\"Cannot duplicate - no source HTML.\")\n );\n },\n function checkPageSize() {\n return this.prop.pageSize || this.setPageSize();\n }\n ];\n return this.thenList(prereqs).then(function toContainer_main() {\n // Define the CSS styles for the container and its overlay parent.\n var overlayCSS = {\n position: \"fixed\",\n overflow: \"hidden\",\n zIndex: 1000,\n left: \"-100000px\",\n right: 0,\n bottom: 0,\n top: 0\n };\n var containerCSS = {\n position: \"relative\",\n display: \"inline-block\",\n width:\n (typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.windowWidth\n : Math.max(\n this.prop.src.clientWidth,\n this.prop.src.scrollWidth,\n this.prop.src.offsetWidth\n )) + \"px\",\n left: 0,\n right: 0,\n top: 0,\n margin: \"auto\",\n backgroundColor: this.opt.backgroundColor\n }; // Set the overlay to hidden (could be changed in the future to provide a print preview).\n\n var source = cloneNode(\n this.prop.src,\n this.opt.html2canvas.javascriptEnabled\n );\n\n if (source.tagName === \"BODY\") {\n containerCSS.height =\n Math.max(\n document.body.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.clientHeight,\n document.documentElement.scrollHeight,\n document.documentElement.offsetHeight\n ) + \"px\";\n }\n\n this.prop.overlay = createElement(\"div\", {\n className: \"html2pdf__overlay\",\n style: overlayCSS\n });\n this.prop.container = createElement(\"div\", {\n className: \"html2pdf__container\",\n style: containerCSS\n });\n this.prop.container.appendChild(source);\n this.prop.container.firstChild.appendChild(\n createElement(\"div\", {\n style: {\n clear: \"both\",\n border: \"0 none transparent\",\n margin: 0,\n padding: 0,\n height: 0\n }\n })\n );\n this.prop.container.style.float = \"none\";\n this.prop.overlay.appendChild(this.prop.container);\n document.body.appendChild(this.prop.overlay);\n this.prop.container.firstChild.style.position = \"relative\";\n this.prop.container.height =\n Math.max(\n this.prop.container.firstChild.clientHeight,\n this.prop.container.firstChild.scrollHeight,\n this.prop.container.firstChild.offsetHeight\n ) + \"px\";\n });\n };\n\n Worker.prototype.toCanvas = function toCanvas() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toCanvas_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var options = Object.assign({}, this.opt.html2canvas);\n delete options.onrendered;\n\n return html2canvas(this.prop.container, options);\n })\n .then(function toCanvas_post(canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toContext2d = function toContext2d() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toContext2d_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n\n var pdf = this.opt.jsPDF;\n var fontFaces = this.opt.fontFaces;\n\n var scale =\n typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.width / this.opt.windowWidth\n : 1;\n\n var options = Object.assign(\n {\n async: true,\n allowTaint: true,\n scale: scale,\n scrollX: this.opt.scrollX || 0,\n scrollY: this.opt.scrollY || 0,\n backgroundColor: \"#ffffff\",\n imageTimeout: 15000,\n logging: true,\n proxy: null,\n removeContainer: true,\n foreignObjectRendering: false,\n useCORS: false\n },\n this.opt.html2canvas\n );\n delete options.onrendered;\n\n pdf.context2d.autoPaging =\n typeof this.opt.autoPaging === \"undefined\"\n ? true\n : this.opt.autoPaging;\n pdf.context2d.posX = this.opt.x;\n pdf.context2d.posY = this.opt.y;\n pdf.context2d.margin = this.opt.margin;\n pdf.context2d.fontFaces = fontFaces;\n\n if (fontFaces) {\n for (var i = 0; i < fontFaces.length; ++i) {\n var font = fontFaces[i];\n var src = font.src.find(function(src) {\n return src.format === \"truetype\";\n });\n\n if (src) {\n pdf.addFont(src.url, font.ref.name, font.ref.style);\n }\n }\n }\n\n options.windowHeight = options.windowHeight || 0;\n options.windowHeight =\n options.windowHeight == 0\n ? Math.max(\n this.prop.container.clientHeight,\n this.prop.container.scrollHeight,\n this.prop.container.offsetHeight\n )\n : options.windowHeight;\n\n pdf.context2d.save(true);\n return html2canvas(this.prop.container, options);\n })\n .then(function toContext2d_post(canvas) {\n this.opt.jsPDF.context2d.restore(true);\n\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toImg = function toImg() {\n // Set up function prerequisites.\n var prereqs = [\n function checkCanvas() {\n return this.prop.canvas || this.toCanvas();\n }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toImg_main() {\n var imgData = this.prop.canvas.toDataURL(\n \"image/\" + this.opt.image.type,\n this.opt.image.quality\n );\n this.prop.img = document.createElement(\"img\");\n this.prop.img.src = imgData;\n });\n };\n\n Worker.prototype.toPdf = function toPdf() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContext2d() {\n return this.toContext2d();\n }\n //function checkCanvas() { return this.prop.canvas || this.toCanvas(); }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toPdf_main() {\n // Create local copies of frequently used properties.\n this.prop.pdf = this.prop.pdf || this.opt.jsPDF;\n });\n };\n\n /* ----- OUTPUT / SAVE ----- */\n\n Worker.prototype.output = function output(type, options, src) {\n // Redirect requests to the correct function (outputPdf / outputImg).\n src = src || \"pdf\";\n if (src.toLowerCase() === \"img\" || src.toLowerCase() === \"image\") {\n return this.outputImg(type, options);\n } else {\n return this.outputPdf(type, options);\n }\n };\n\n Worker.prototype.outputPdf = function outputPdf(type, options) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputPdf_main() {\n /* Currently implemented output types:\n * https://rawgit.com/MrRio/jsPDF/master/docs/jspdf.js.html#line992\n * save(options), arraybuffer, blob, bloburi/bloburl,\n * datauristring/dataurlstring, dataurlnewwindow, datauri/dataurl\n */\n return this.prop.pdf.output(type, options);\n });\n };\n\n Worker.prototype.outputImg = function outputImg(type) {\n // Set up function prerequisites.\n var prereqs = [\n function checkImg() {\n return this.prop.img || this.toImg();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputImg_main() {\n switch (type) {\n case undefined:\n case \"img\":\n return this.prop.img;\n case \"datauristring\":\n case \"dataurlstring\":\n return this.prop.img.src;\n case \"datauri\":\n case \"dataurl\":\n return (document.location.href = this.prop.img.src);\n default:\n throw 'Image output type \"' + type + '\" is not supported.';\n }\n });\n };\n\n Worker.prototype.save = function save(filename) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs)\n .set(filename ? { filename: filename } : null)\n .then(function save_main() {\n this.prop.pdf.save(this.opt.filename);\n });\n };\n\n Worker.prototype.doCallback = function doCallback() {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs).then(function doCallback_main() {\n this.prop.callback(this.prop.pdf);\n });\n };\n\n /* ----- SET / GET ----- */\n\n Worker.prototype.set = function set(opt) {\n // TODO: Implement ordered pairs?\n\n // Silently ignore invalid or empty input.\n if (objType(opt) !== \"object\") {\n return this;\n }\n\n // Build an array of setter functions to queue.\n var fns = Object.keys(opt || {}).map(function(key) {\n if (key in Worker.template.prop) {\n // Set pre-defined properties.\n return function set_prop() {\n this.prop[key] = opt[key];\n };\n } else {\n switch (key) {\n case \"margin\":\n return this.setMargin.bind(this, opt.margin);\n case \"jsPDF\":\n return function set_jsPDF() {\n this.opt.jsPDF = opt.jsPDF;\n return this.setPageSize();\n };\n case \"pageSize\":\n return this.setPageSize.bind(this, opt.pageSize);\n default:\n // Set any other properties in opt.\n return function set_opt() {\n this.opt[key] = opt[key];\n };\n }\n }\n }, this);\n\n // Set properties within the promise chain.\n return this.then(function set_main() {\n return this.thenList(fns);\n });\n };\n\n Worker.prototype.get = function get(key, cbk) {\n return this.then(function get_main() {\n // Fetch the requested property, either as a predefined prop or in opt.\n var val = key in Worker.template.prop ? this.prop[key] : this.opt[key];\n return cbk ? cbk(val) : val;\n });\n };\n\n Worker.prototype.setMargin = function setMargin(margin) {\n return this.then(function setMargin_main() {\n // Parse the margin property.\n switch (objType(margin)) {\n case \"number\":\n margin = [margin, margin, margin, margin];\n // eslint-disable-next-line no-fallthrough\n case \"array\":\n if (margin.length === 2) {\n margin = [margin[0], margin[1], margin[0], margin[1]];\n }\n if (margin.length === 4) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n default:\n return this.error(\"Invalid margin array.\");\n }\n\n // Set the margin property, then update pageSize.\n this.opt.margin = margin;\n }).then(this.setPageSize);\n };\n\n Worker.prototype.setPageSize = function setPageSize(pageSize) {\n function toPx(val, k) {\n return Math.floor(((val * k) / 72) * 96);\n }\n\n return this.then(function setPageSize_main() {\n // Retrieve page-size based on jsPDF settings, if not explicitly provided.\n pageSize = pageSize || jsPDF.getPageSize(this.opt.jsPDF);\n\n // Add 'inner' field if not present.\n if (!pageSize.hasOwnProperty(\"inner\")) {\n pageSize.inner = {\n width: pageSize.width - this.opt.margin[1] - this.opt.margin[3],\n height: pageSize.height - this.opt.margin[0] - this.opt.margin[2]\n };\n pageSize.inner.px = {\n width: toPx(pageSize.inner.width, pageSize.k),\n height: toPx(pageSize.inner.height, pageSize.k)\n };\n pageSize.inner.ratio = pageSize.inner.height / pageSize.inner.width;\n }\n\n // Attach pageSize to this.\n this.prop.pageSize = pageSize;\n });\n };\n\n Worker.prototype.setProgress = function setProgress(val, state, n, stack) {\n // Immediately update all progress values.\n if (val != null) this.progress.val = val;\n if (state != null) this.progress.state = state;\n if (n != null) this.progress.n = n;\n if (stack != null) this.progress.stack = stack;\n this.progress.ratio = this.progress.val / this.progress.state;\n\n // Return this for command chaining.\n return this;\n };\n\n Worker.prototype.updateProgress = function updateProgress(\n val,\n state,\n n,\n stack\n ) {\n // Immediately update all progress values, using setProgress.\n return this.setProgress(\n val ? this.progress.val + val : null,\n state ? state : null,\n n ? this.progress.n + n : null,\n stack ? this.progress.stack.concat(stack) : null\n );\n };\n\n /* ----- PROMISE MAPPING ----- */\n\n Worker.prototype.then = function then(onFulfilled, onRejected) {\n // Wrap `this` for encapsulation.\n var self = this;\n\n return this.thenCore(onFulfilled, onRejected, function then_main(\n onFulfilled,\n onRejected\n ) {\n // Update progress while queuing, calling, and resolving `then`.\n self.updateProgress(null, null, 1, [onFulfilled]);\n return Promise.prototype.then\n .call(this, function then_pre(val) {\n self.updateProgress(null, onFulfilled);\n return val;\n })\n .then(onFulfilled, onRejected)\n .then(function then_post(val) {\n self.updateProgress(1);\n return val;\n });\n });\n };\n\n Worker.prototype.thenCore = function thenCore(\n onFulfilled,\n onRejected,\n thenBase\n ) {\n // Handle optional thenBase parameter.\n thenBase = thenBase || Promise.prototype.then;\n\n // Wrap `this` for encapsulation and bind it to the promise handlers.\n var self = this;\n if (onFulfilled) {\n onFulfilled = onFulfilled.bind(self);\n }\n if (onRejected) {\n onRejected = onRejected.bind(self);\n }\n\n // Cast self into a Promise to avoid polyfills recursively defining `then`.\n var isNative =\n Promise.toString().indexOf(\"[native code]\") !== -1 &&\n Promise.name === \"Promise\";\n var selfPromise = isNative\n ? self\n : Worker.convert(Object.assign({}, self), Promise.prototype);\n\n // Return the promise, after casting it into a Worker and preserving props.\n var returnVal = thenBase.call(selfPromise, onFulfilled, onRejected);\n return Worker.convert(returnVal, self.__proto__);\n };\n\n Worker.prototype.thenExternal = function thenExternal(\n onFulfilled,\n onRejected\n ) {\n // Call `then` and return a standard promise (exits the Worker chain).\n return Promise.prototype.then.call(this, onFulfilled, onRejected);\n };\n\n Worker.prototype.thenList = function thenList(fns) {\n // Queue a series of promise 'factories' into the promise chain.\n var self = this;\n fns.forEach(function thenList_forEach(fn) {\n self = self.thenCore(fn);\n });\n return self;\n };\n\n Worker.prototype[\"catch\"] = function(onRejected) {\n // Bind `this` to the promise handler, call `catch`, and return a Worker.\n if (onRejected) {\n onRejected = onRejected.bind(this);\n }\n var returnVal = Promise.prototype[\"catch\"].call(this, onRejected);\n return Worker.convert(returnVal, this);\n };\n\n Worker.prototype.catchExternal = function catchExternal(onRejected) {\n // Call `catch` and return a standard promise (exits the Worker chain).\n return Promise.prototype[\"catch\"].call(this, onRejected);\n };\n\n Worker.prototype.error = function error(msg) {\n // Throw the error in the Promise chain.\n return this.then(function error_main() {\n throw new Error(msg);\n });\n };\n\n /* ----- ALIASES ----- */\n\n Worker.prototype.using = Worker.prototype.set;\n Worker.prototype.saveAs = Worker.prototype.save;\n Worker.prototype.export = Worker.prototype.output;\n Worker.prototype.run = Worker.prototype.then;\n\n // Get dimensions of a PDF page, as determined by jsPDF.\n jsPDF.getPageSize = function(orientation, unit, format) {\n // Decode options object\n if (typeof orientation === \"object\") {\n var options = orientation;\n orientation = options.orientation;\n unit = options.unit || unit;\n format = options.format || format;\n }\n\n // Default options\n unit = unit || \"mm\";\n format = format || \"a4\";\n orientation = (\"\" + (orientation || \"P\")).toLowerCase();\n var format_as_string = (\"\" + format).toLowerCase();\n\n // Size in pt of various paper formats\n var pageFormats = {\n a0: [2383.94, 3370.39],\n a1: [1683.78, 2383.94],\n a2: [1190.55, 1683.78],\n a3: [841.89, 1190.55],\n a4: [595.28, 841.89],\n a5: [419.53, 595.28],\n a6: [297.64, 419.53],\n a7: [209.76, 297.64],\n a8: [147.4, 209.76],\n a9: [104.88, 147.4],\n a10: [73.7, 104.88],\n b0: [2834.65, 4008.19],\n b1: [2004.09, 2834.65],\n b2: [1417.32, 2004.09],\n b3: [1000.63, 1417.32],\n b4: [708.66, 1000.63],\n b5: [498.9, 708.66],\n b6: [354.33, 498.9],\n b7: [249.45, 354.33],\n b8: [175.75, 249.45],\n b9: [124.72, 175.75],\n b10: [87.87, 124.72],\n c0: [2599.37, 3676.54],\n c1: [1836.85, 2599.37],\n c2: [1298.27, 1836.85],\n c3: [918.43, 1298.27],\n c4: [649.13, 918.43],\n c5: [459.21, 649.13],\n c6: [323.15, 459.21],\n c7: [229.61, 323.15],\n c8: [161.57, 229.61],\n c9: [113.39, 161.57],\n c10: [79.37, 113.39],\n dl: [311.81, 623.62],\n letter: [612, 792],\n \"government-letter\": [576, 756],\n legal: [612, 1008],\n \"junior-legal\": [576, 360],\n ledger: [1224, 792],\n tabloid: [792, 1224],\n \"credit-card\": [153, 243]\n };\n\n var k;\n // Unit conversion\n switch (unit) {\n case \"pt\":\n k = 1;\n break;\n case \"mm\":\n k = 72 / 25.4;\n break;\n case \"cm\":\n k = 72 / 2.54;\n break;\n case \"in\":\n k = 72;\n break;\n case \"px\":\n k = 72 / 96;\n break;\n case \"pc\":\n k = 12;\n break;\n case \"em\":\n k = 12;\n break;\n case \"ex\":\n k = 6;\n break;\n default:\n throw \"Invalid unit: \" + unit;\n }\n var pageHeight = 0;\n var pageWidth = 0;\n\n // Dimensions are stored as user units and converted to points on output\n if (pageFormats.hasOwnProperty(format_as_string)) {\n pageHeight = pageFormats[format_as_string][1] / k;\n pageWidth = pageFormats[format_as_string][0] / k;\n } else {\n try {\n pageHeight = format[1];\n pageWidth = format[0];\n } catch (err) {\n throw new Error(\"Invalid format: \" + format);\n }\n }\n\n var tmp;\n // Handle page orientation\n if (orientation === \"p\" || orientation === \"portrait\") {\n orientation = \"p\";\n if (pageWidth > pageHeight) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else if (orientation === \"l\" || orientation === \"landscape\") {\n orientation = \"l\";\n if (pageHeight > pageWidth) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else {\n throw \"Invalid orientation: \" + orientation;\n }\n\n // Return information (k is the unit conversion ratio from pts)\n var info = {\n width: pageWidth,\n height: pageHeight,\n unit: unit,\n k: k,\n orientation: orientation\n };\n return info;\n };\n\n /**\n * @typedef FontFace\n *\n * The font-face type implements an interface similar to that of the font-face CSS rule,\n * and is used by jsPDF to match fonts when the font property of CanvasRenderingContext2D\n * is updated.\n *\n * All properties expect values similar to those in the font-face CSS rule. A difference\n * is the font-family, which do not need to be enclosed in double-quotes when containing\n * spaces like in CSS.\n *\n * @property {string} family The name of the font-family.\n * @property {string|undefined} style The style that this font-face defines, e.g. 'italic'.\n * @property {string|number|undefined} weight The weight of the font, either as a string or a number (400, 500, 600, e.g.)\n * @property {string|undefined} stretch The stretch of the font, e.g. condensed, normal, expanded.\n * @property {Object[]} src A list of URLs from where fonts of various formats can be fetched.\n * @property {string} [src] url A URL to a font of a specific format.\n * @property {string} [src] format Format of the font referenced by the URL.\n */\n\n /**\n * Generate a PDF from an HTML element or string using.\n *\n * @name html\n * @function\n * @param {HTMLElement|string} source The source HTMLElement or a string containing HTML.\n * @param {Object} [options] Collection of settings\n * @param {function} [options.callback] The mandatory callback-function gets as first parameter the current jsPDF instance\n * @param {(number|number[])=} [options.margin] Page margins [top, right, bottom, left]. Default is 0.\n * @param {(boolean|'slice'|'text')=} [options.autoPaging] The auto paging mode.\n *
      \n *
    • \n * false: Auto paging is disabled.\n *
    • \n *
    • \n * true or 'slice': Will cut shapes or text chunks across page breaks. Will possibly\n * slice text in half, making it difficult to read.\n *
    • \n *
    • \n * 'text': Trys not to cut text in half across page breaks. Works best for documents consisting\n * mostly of a single column of text.\n *
    • \n *
    \n * Default is true.\n * @param {string} [options.filename] name of the file\n * @param {HTMLOptionImage} [options.image] image settings when converting HTML to image\n * @param {Html2CanvasOptions} [options.html2canvas] html2canvas options\n * @param {FontFace[]} [options.fontFaces] A list of font-faces to match when resolving fonts. Fonts will be added to the PDF based on the specified URL. If omitted, the font match algorithm falls back to old algorithm.\n * @param {jsPDF} [options.jsPDF] jsPDF instance\n * @param {number=} [options.x] x position on the PDF document in jsPDF units.\n * @param {number=} [options.y] y position on the PDF document in jsPDF units.\n * @param {number=} [options.width] The target width in the PDF document in jsPDF units. The rendered element will be\n * scaled such that it fits into the specified width. Has no effect if either the html2canvas.scale is\n * specified or the windowWidth option is NOT specified.\n * @param {number=} [options.windowWidth] The window width in CSS pixels. In contrast to the\n * html2canvas.windowWidth option, this option affects the actual container size while rendering and\n * does NOT affect CSS media queries. This option only has an effect, if the width option is also specified.\n *\n * @example\n * var doc = new jsPDF();\n *\n * doc.html(document.body, {\n * callback: function (doc) {\n * doc.save();\n * },\n * x: 10,\n * y: 10\n * });\n */\n jsPDFAPI.html = function(src, options) {\n \"use strict\";\n\n options = options || {};\n options.callback = options.callback || function() {};\n options.html2canvas = options.html2canvas || {};\n options.html2canvas.canvas = options.html2canvas.canvas || this.canvas;\n options.jsPDF = options.jsPDF || this;\n options.fontFaces = options.fontFaces\n ? options.fontFaces.map(normalizeFontFace)\n : null;\n\n // Create a new worker with the given options.\n var worker = new Worker(options);\n\n if (!options.worker) {\n // If worker is not set to true, perform the traditional 'simple' operation.\n return worker.from(src).doCallback();\n } else {\n // Otherwise, return the worker for new Promise-based operation.\n return worker;\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Outline PlugIn\n *\n * Generates a PDF Outline\n * @name outline\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namesOid;\n //var destsGoto = [];\n\n jsPDFAPI.events.push([\n \"postPutResources\",\n function() {\n var pdf = this;\n var rx = /^(\\d+) 0 obj$/;\n\n // Write action goto objects for each page\n // this.outline.destsGoto = [];\n // for (var i = 0; i < totalPages; i++) {\n // var id = pdf.internal.newObject();\n // this.outline.destsGoto.push(id);\n // pdf.internal.write(\"<> endobj\");\n // }\n //\n // for (var i = 0; i < dests.length; i++) {\n // pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0\n // R\");\n // }\n //\n if (this.outline.root.children.length > 0) {\n var lines = pdf.outline.render().split(/\\r\\n/);\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i];\n var m = rx.exec(line);\n if (m != null) {\n var oid = m[1];\n pdf.internal.newObjectDeferredBegin(oid, false);\n }\n pdf.internal.write(line);\n }\n }\n\n // This code will write named destination for each page reference\n // (page_1, etc)\n if (this.outline.createNamedDestinations) {\n var totalPages = this.internal.pages.length;\n // WARNING: this assumes jsPDF starts on page 3 and pageIDs\n // follow 5, 7, 9, etc\n // Write destination objects for each page\n var dests = [];\n for (var i = 0; i < totalPages; i++) {\n var id = pdf.internal.newObject();\n dests.push(id);\n var info = pdf.internal.getPageInfo(i + 1);\n pdf.internal.write(\n \"<< /D[\" + info.objId + \" 0 R /XYZ null null null]>> endobj\"\n );\n }\n\n // assign a name for each destination\n var names2Oid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Names [ \");\n for (var i = 0; i < dests.length; i++) {\n pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0 R\");\n }\n pdf.internal.write(\" ] >>\", \"endobj\");\n\n // var kids = pdf.internal.newObject();\n // pdf.internal.write('<< /Kids [ ' + names2Oid + ' 0 R');\n // pdf.internal.write(' ] >>', 'endobj');\n\n namesOid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Dests \" + names2Oid + \" 0 R\");\n pdf.internal.write(\">>\", \"endobj\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putCatalog\",\n function() {\n var pdf = this;\n if (pdf.outline.root.children.length > 0) {\n pdf.internal.write(\n \"/Outlines\",\n this.outline.makeRef(this.outline.root)\n );\n if (this.outline.createNamedDestinations) {\n pdf.internal.write(\"/Names \" + namesOid + \" 0 R\");\n }\n // Open with Bookmarks showing\n // pdf.internal.write(\"/PageMode /UseOutlines\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n var pdf = this;\n\n pdf.outline = {\n createNamedDestinations: false,\n root: {\n children: []\n }\n };\n\n /**\n * Options: pageNumber\n */\n pdf.outline.add = function(parent, title, options) {\n var item = {\n title: title,\n options: options,\n children: []\n };\n if (parent == null) {\n parent = this.root;\n }\n parent.children.push(item);\n return item;\n };\n\n pdf.outline.render = function() {\n this.ctx = {};\n this.ctx.val = \"\";\n this.ctx.pdf = pdf;\n\n this.genIds_r(this.root);\n this.renderRoot(this.root);\n this.renderItems(this.root);\n\n return this.ctx.val;\n };\n\n pdf.outline.genIds_r = function(node) {\n node.id = pdf.internal.newObjectDeferred();\n for (var i = 0; i < node.children.length; i++) {\n this.genIds_r(node.children[i]);\n }\n };\n\n pdf.outline.renderRoot = function(node) {\n this.objStart(node);\n this.line(\"/Type /Outlines\");\n if (node.children.length > 0) {\n this.line(\"/First \" + this.makeRef(node.children[0]));\n this.line(\n \"/Last \" + this.makeRef(node.children[node.children.length - 1])\n );\n }\n this.line(\n \"/Count \" +\n this.count_r(\n {\n count: 0\n },\n node\n )\n );\n this.objEnd();\n };\n\n pdf.outline.renderItems = function(node) {\n var getVerticalCoordinateString = this.ctx.pdf.internal\n .getVerticalCoordinateString;\n for (var i = 0; i < node.children.length; i++) {\n var item = node.children[i];\n this.objStart(item);\n\n this.line(\"/Title \" + this.makeString(item.title));\n\n this.line(\"/Parent \" + this.makeRef(node));\n if (i > 0) {\n this.line(\"/Prev \" + this.makeRef(node.children[i - 1]));\n }\n if (i < node.children.length - 1) {\n this.line(\"/Next \" + this.makeRef(node.children[i + 1]));\n }\n if (item.children.length > 0) {\n this.line(\"/First \" + this.makeRef(item.children[0]));\n this.line(\n \"/Last \" + this.makeRef(item.children[item.children.length - 1])\n );\n }\n\n var count = (this.count = this.count_r(\n {\n count: 0\n },\n item\n ));\n if (count > 0) {\n this.line(\"/Count \" + count);\n }\n\n if (item.options) {\n if (item.options.pageNumber) {\n // Explicit Destination\n //WARNING this assumes page ids are 3,5,7, etc.\n var info = pdf.internal.getPageInfo(item.options.pageNumber);\n this.line(\n \"/Dest \" +\n \"[\" +\n info.objId +\n \" 0 R /XYZ 0 \" +\n getVerticalCoordinateString(0) +\n \" 0]\"\n );\n // this line does not work on all clients (pageNumber instead of page ref)\n //this.line('/Dest ' + '[' + (item.options.pageNumber - 1) + ' /XYZ 0 ' + this.ctx.pdf.internal.pageSize.getHeight() + ' 0]');\n\n // Named Destination\n // this.line('/Dest (page_' + (item.options.pageNumber) + ')');\n\n // Action Destination\n // var id = pdf.internal.newObject();\n // pdf.internal.write('<> endobj');\n // this.line('/A ' + id + ' 0 R' );\n }\n }\n this.objEnd();\n }\n for (var z = 0; z < node.children.length; z++) {\n this.renderItems(node.children[z]);\n }\n };\n\n pdf.outline.line = function(text) {\n this.ctx.val += text + \"\\r\\n\";\n };\n\n pdf.outline.makeRef = function(node) {\n return node.id + \" 0 R\";\n };\n\n pdf.outline.makeString = function(val) {\n return \"(\" + pdf.internal.pdfEscape(val) + \")\";\n };\n\n pdf.outline.objStart = function(node) {\n this.ctx.val += \"\\r\\n\" + node.id + \" 0 obj\" + \"\\r\\n<<\\r\\n\";\n };\n\n pdf.outline.objEnd = function() {\n this.ctx.val += \">> \\r\\n\" + \"endobj\" + \"\\r\\n\";\n };\n\n pdf.outline.count_r = function(ctx, node) {\n for (var i = 0; i < node.children.length; i++) {\n ctx.count++;\n this.count_r(ctx, node.children[i]);\n }\n return ctx.count;\n };\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF jpeg Support PlugIn\n *\n * @name jpeg_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * 0xc0 (SOF) Huffman - Baseline DCT\n * 0xc1 (SOF) Huffman - Extended sequential DCT\n * 0xc2 Progressive DCT (SOF2)\n * 0xc3 Spatial (sequential) lossless (SOF3)\n * 0xc4 Differential sequential DCT (SOF5)\n * 0xc5 Differential progressive DCT (SOF6)\n * 0xc6 Differential spatial (SOF7)\n * 0xc7\n */\n var markers = [0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7];\n\n //takes a string imgData containing the raw bytes of\n //a jpeg image and returns [width, height]\n //Algorithm from: http://www.64lines.com/jpeg-width-height\n var getJpegInfo = function(imgData) {\n var width, height, numcomponents;\n var blockLength = imgData.charCodeAt(4) * 256 + imgData.charCodeAt(5);\n var len = imgData.length;\n var result = { width: 0, height: 0, numcomponents: 1 };\n for (var i = 4; i < len; i += 2) {\n i += blockLength;\n if (markers.indexOf(imgData.charCodeAt(i + 1)) !== -1) {\n height = imgData.charCodeAt(i + 5) * 256 + imgData.charCodeAt(i + 6);\n width = imgData.charCodeAt(i + 7) * 256 + imgData.charCodeAt(i + 8);\n numcomponents = imgData.charCodeAt(i + 9);\n result = { width: width, height: height, numcomponents: numcomponents };\n break;\n } else {\n blockLength =\n imgData.charCodeAt(i + 2) * 256 + imgData.charCodeAt(i + 3);\n }\n }\n return result;\n };\n\n /**\n * @ignore\n */\n jsPDFAPI.processJPEG = function(\n data,\n index,\n alias,\n compression,\n dataAsBinaryString,\n colorSpace\n ) {\n var filter = this.decode.DCT_DECODE,\n bpc = 8,\n dims,\n result = null;\n\n if (\n typeof data === \"string\" ||\n this.__addimage__.isArrayBuffer(data) ||\n this.__addimage__.isArrayBufferView(data)\n ) {\n // if we already have a stored binary string rep use that\n data = dataAsBinaryString || data;\n data = this.__addimage__.isArrayBuffer(data)\n ? new Uint8Array(data)\n : data;\n data = this.__addimage__.isArrayBufferView(data)\n ? this.__addimage__.arrayBufferToBinaryString(data)\n : data;\n\n dims = getJpegInfo(data);\n switch (dims.numcomponents) {\n case 1:\n colorSpace = this.color_spaces.DEVICE_GRAY;\n break;\n case 4:\n colorSpace = this.color_spaces.DEVICE_CMYK;\n break;\n case 3:\n colorSpace = this.color_spaces.DEVICE_RGB;\n break;\n }\n\n result = {\n data: data,\n width: dims.width,\n height: dims.height,\n colorSpace: colorSpace,\n bitsPerComponent: bpc,\n filter: filter,\n index: index,\n alias: alias\n };\n }\n return result;\n };\n})(jsPDF.API);\n","// Generated by CoffeeScript 1.4.0\n\n/**\n * @license\n * PNG.js\n * Copyright (c) 2011 Devon Govett\n * MIT LICENSE\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\n * software and associated documentation files (the \"Software\"), to deal in the Software\n * without restriction, including without limitation the rights to use, copy, modify, merge,\n * publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons\n * to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or\n * substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nimport { unzlibSync } from \"./fflate.js\";\nimport { globalObject } from \"./globalObject.js\";\n\nvar PNG = (function() {\n var APNG_BLEND_OP_OVER,\n APNG_BLEND_OP_SOURCE,\n APNG_DISPOSE_OP_BACKGROUND,\n APNG_DISPOSE_OP_NONE,\n APNG_DISPOSE_OP_PREVIOUS,\n makeImage,\n scratchCanvas,\n scratchCtx;\n\n APNG_DISPOSE_OP_NONE = 0;\n\n APNG_DISPOSE_OP_BACKGROUND = 1;\n\n APNG_DISPOSE_OP_PREVIOUS = 2;\n\n APNG_BLEND_OP_SOURCE = 0;\n\n APNG_BLEND_OP_OVER = 1;\n\n function PNG(data) {\n var chunkSize,\n colors,\n palLen,\n delayDen,\n delayNum,\n frame,\n i,\n index,\n key,\n section,\n palShort,\n text,\n _i,\n _j,\n _ref;\n this.data = data;\n this.pos = 8;\n this.palette = [];\n this.imgData = [];\n this.transparency = {};\n this.animation = null;\n this.text = {};\n frame = null;\n while (true) {\n chunkSize = this.readUInt32();\n section = function() {\n var _i, _results;\n _results = [];\n for (i = _i = 0; _i < 4; i = ++_i) {\n _results.push(String.fromCharCode(this.data[this.pos++]));\n }\n return _results;\n }\n .call(this)\n .join(\"\");\n switch (section) {\n case \"IHDR\":\n this.width = this.readUInt32();\n this.height = this.readUInt32();\n this.bits = this.data[this.pos++];\n this.colorType = this.data[this.pos++];\n this.compressionMethod = this.data[this.pos++];\n this.filterMethod = this.data[this.pos++];\n this.interlaceMethod = this.data[this.pos++];\n break;\n case \"acTL\":\n this.animation = {\n numFrames: this.readUInt32(),\n numPlays: this.readUInt32() || Infinity,\n frames: []\n };\n break;\n case \"PLTE\":\n this.palette = this.read(chunkSize);\n break;\n case \"fcTL\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.pos += 4;\n frame = {\n width: this.readUInt32(),\n height: this.readUInt32(),\n xOffset: this.readUInt32(),\n yOffset: this.readUInt32()\n };\n delayNum = this.readUInt16();\n delayDen = this.readUInt16() || 100;\n frame.delay = (1000 * delayNum) / delayDen;\n frame.disposeOp = this.data[this.pos++];\n frame.blendOp = this.data[this.pos++];\n frame.data = [];\n break;\n case \"IDAT\":\n case \"fdAT\":\n if (section === \"fdAT\") {\n this.pos += 4;\n chunkSize -= 4;\n }\n data = (frame != null ? frame.data : void 0) || this.imgData;\n for (\n i = _i = 0;\n 0 <= chunkSize ? _i < chunkSize : _i > chunkSize;\n i = 0 <= chunkSize ? ++_i : --_i\n ) {\n data.push(this.data[this.pos++]);\n }\n break;\n case \"tRNS\":\n this.transparency = {};\n switch (this.colorType) {\n case 3:\n palLen = this.palette.length / 3;\n this.transparency.indexed = this.read(chunkSize);\n if (this.transparency.indexed.length > palLen)\n throw new Error(\"More transparent colors than palette size\");\n /*\n * According to the PNG spec trns should be increased to the same size as palette if shorter\n */\n //palShort = 255 - this.transparency.indexed.length;\n palShort = palLen - this.transparency.indexed.length;\n if (palShort > 0) {\n for (\n i = _j = 0;\n 0 <= palShort ? _j < palShort : _j > palShort;\n i = 0 <= palShort ? ++_j : --_j\n ) {\n this.transparency.indexed.push(255);\n }\n }\n break;\n case 0:\n this.transparency.grayscale = this.read(chunkSize)[0];\n break;\n case 2:\n this.transparency.rgb = this.read(chunkSize);\n }\n break;\n case \"tEXt\":\n text = this.read(chunkSize);\n index = text.indexOf(0);\n key = String.fromCharCode.apply(String, text.slice(0, index));\n this.text[key] = String.fromCharCode.apply(\n String,\n text.slice(index + 1)\n );\n break;\n case \"IEND\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.colors = function() {\n switch (this.colorType) {\n case 0:\n case 3:\n case 4:\n return 1;\n case 2:\n case 6:\n return 3;\n }\n }.call(this);\n this.hasAlphaChannel = (_ref = this.colorType) === 4 || _ref === 6;\n colors = this.colors + (this.hasAlphaChannel ? 1 : 0);\n this.pixelBitlength = this.bits * colors;\n this.colorSpace = function() {\n switch (this.colors) {\n case 1:\n return \"DeviceGray\";\n case 3:\n return \"DeviceRGB\";\n }\n }.call(this);\n this.imgData = new Uint8Array(this.imgData);\n return;\n default:\n this.pos += chunkSize;\n }\n this.pos += 4;\n if (this.pos > this.data.length) {\n throw new Error(\"Incomplete or corrupt PNG file\");\n }\n }\n }\n\n PNG.prototype.read = function(bytes) {\n var i, _i, _results;\n _results = [];\n for (\n i = _i = 0;\n 0 <= bytes ? _i < bytes : _i > bytes;\n i = 0 <= bytes ? ++_i : --_i\n ) {\n _results.push(this.data[this.pos++]);\n }\n return _results;\n };\n\n PNG.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.data[this.pos++] << 24;\n b2 = this.data[this.pos++] << 16;\n b3 = this.data[this.pos++] << 8;\n b4 = this.data[this.pos++];\n return b1 | b2 | b3 | b4;\n };\n\n PNG.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.data[this.pos++] << 8;\n b2 = this.data[this.pos++];\n return b1 | b2;\n };\n\n PNG.prototype.decodePixels = function(data) {\n var pixelBytes = this.pixelBitlength / 8;\n var fullPixels = new Uint8Array(this.width * this.height * pixelBytes);\n var pos = 0;\n var _this = this;\n\n if (data == null) {\n data = this.imgData;\n }\n if (data.length === 0) {\n return new Uint8Array(0);\n }\n\n data = unzlibSync(data);\n function pass(x0, y0, dx, dy) {\n var abyte,\n c,\n col,\n i,\n left,\n length,\n p,\n pa,\n paeth,\n pb,\n pc,\n pixels,\n row,\n scanlineLength,\n upper,\n upperLeft,\n _i,\n _j,\n _k,\n _l,\n _m;\n var w = Math.ceil((_this.width - x0) / dx),\n h = Math.ceil((_this.height - y0) / dy);\n var isFull = _this.width == w && _this.height == h;\n scanlineLength = pixelBytes * w;\n pixels = isFull ? fullPixels : new Uint8Array(scanlineLength * h);\n length = data.length;\n row = 0;\n c = 0;\n while (row < h && pos < length) {\n switch (data[pos++]) {\n case 0:\n for (i = _i = 0; _i < scanlineLength; i = _i += 1) {\n pixels[c++] = data[pos++];\n }\n break;\n case 1:\n for (i = _j = 0; _j < scanlineLength; i = _j += 1) {\n abyte = data[pos++];\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n pixels[c++] = (abyte + left) % 256;\n }\n break;\n case 2:\n for (i = _k = 0; _k < scanlineLength; i = _k += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (upper + abyte) % 256;\n }\n break;\n case 3:\n for (i = _l = 0; _l < scanlineLength; i = _l += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (abyte + Math.floor((left + upper) / 2)) % 256;\n }\n break;\n case 4:\n for (i = _m = 0; _m < scanlineLength; i = _m += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n if (row === 0) {\n upper = upperLeft = 0;\n } else {\n upper =\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n upperLeft =\n col &&\n pixels[\n (row - 1) * scanlineLength +\n (col - 1) * pixelBytes +\n (i % pixelBytes)\n ];\n }\n p = left + upper - upperLeft;\n pa = Math.abs(p - left);\n pb = Math.abs(p - upper);\n pc = Math.abs(p - upperLeft);\n if (pa <= pb && pa <= pc) {\n paeth = left;\n } else if (pb <= pc) {\n paeth = upper;\n } else {\n paeth = upperLeft;\n }\n pixels[c++] = (abyte + paeth) % 256;\n }\n break;\n default:\n throw new Error(\"Invalid filter algorithm: \" + data[pos - 1]);\n }\n if (!isFull) {\n var fullPos = ((y0 + row * dy) * _this.width + x0) * pixelBytes;\n var partPos = row * scanlineLength;\n for (i = 0; i < w; i += 1) {\n for (var j = 0; j < pixelBytes; j += 1)\n fullPixels[fullPos++] = pixels[partPos++];\n fullPos += (dx - 1) * pixelBytes;\n }\n }\n row++;\n }\n }\n if (_this.interlaceMethod == 1) {\n /*\n 1 6 4 6 2 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n 3 6 4 6 3 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n */\n pass(0, 0, 8, 8); // 1\n /* NOTE these seem to follow the pattern:\n * pass(x, 0, 2*x, 2*x);\n * pass(0, x, x, 2*x);\n * with x being 4, 2, 1.\n */\n pass(4, 0, 8, 8); // 2\n pass(0, 4, 4, 8); // 3\n\n pass(2, 0, 4, 4); // 4\n pass(0, 2, 2, 4); // 5\n\n pass(1, 0, 2, 2); // 6\n pass(0, 1, 1, 2); // 7\n } else {\n pass(0, 0, 1, 1);\n }\n return fullPixels;\n };\n\n PNG.prototype.decodePalette = function() {\n var c, i, length, palette, pos, ret, transparency, _i, _ref, _ref1;\n palette = this.palette;\n transparency = this.transparency.indexed || [];\n ret = new Uint8Array((transparency.length || 0) + palette.length);\n pos = 0;\n length = palette.length;\n c = 0;\n for (i = _i = 0, _ref = length; _i < _ref; i = _i += 3) {\n ret[pos++] = palette[i];\n ret[pos++] = palette[i + 1];\n ret[pos++] = palette[i + 2];\n ret[pos++] = (_ref1 = transparency[c++]) != null ? _ref1 : 255;\n }\n return ret;\n };\n\n PNG.prototype.copyToImageData = function(imageData, pixels) {\n var alpha, colors, data, i, input, j, k, length, palette, v, _ref;\n colors = this.colors;\n palette = null;\n alpha = this.hasAlphaChannel;\n if (this.palette.length) {\n palette =\n (_ref = this._decodedPalette) != null\n ? _ref\n : (this._decodedPalette = this.decodePalette());\n colors = 4;\n alpha = true;\n }\n data = imageData.data || imageData;\n length = data.length;\n input = palette || pixels;\n i = j = 0;\n if (colors === 1) {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n v = input[k++];\n data[i++] = v;\n data[i++] = v;\n data[i++] = v;\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n } else {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n }\n };\n\n PNG.prototype.decode = function() {\n var ret;\n ret = new Uint8Array(this.width * this.height * 4);\n this.copyToImageData(ret, this.decodePixels());\n return ret;\n };\n\n var hasBrowserCanvas = function() {\n if (Object.prototype.toString.call(globalObject) === \"[object Window]\") {\n try {\n scratchCanvas = globalObject.document.createElement(\"canvas\");\n scratchCtx = scratchCanvas.getContext(\"2d\");\n } catch (e) {\n return false;\n }\n return true;\n }\n return false;\n };\n\n hasBrowserCanvas();\n\n makeImage = function(imageData) {\n if (hasBrowserCanvas() === true) {\n var img;\n scratchCtx.width = imageData.width;\n scratchCtx.height = imageData.height;\n scratchCtx.clearRect(0, 0, imageData.width, imageData.height);\n scratchCtx.putImageData(imageData, 0, 0);\n img = new Image();\n img.src = scratchCanvas.toDataURL();\n return img;\n }\n throw new Error(\"This method requires a Browser with Canvas-capability.\");\n };\n\n PNG.prototype.decodeFrames = function(ctx) {\n var frame, i, imageData, pixels, _i, _len, _ref, _results;\n if (!this.animation) {\n return;\n }\n _ref = this.animation.frames;\n _results = [];\n for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n frame = _ref[i];\n imageData = ctx.createImageData(frame.width, frame.height);\n pixels = this.decodePixels(new Uint8Array(frame.data));\n this.copyToImageData(imageData, pixels);\n frame.imageData = imageData;\n _results.push((frame.image = makeImage(imageData)));\n }\n return _results;\n };\n\n PNG.prototype.renderFrame = function(ctx, number) {\n var frame, frames, prev;\n frames = this.animation.frames;\n frame = frames[number];\n prev = frames[number - 1];\n if (number === 0) {\n ctx.clearRect(0, 0, this.width, this.height);\n }\n if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_BACKGROUND\n ) {\n ctx.clearRect(prev.xOffset, prev.yOffset, prev.width, prev.height);\n } else if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_PREVIOUS\n ) {\n ctx.putImageData(prev.imageData, prev.xOffset, prev.yOffset);\n }\n if (frame.blendOp === APNG_BLEND_OP_SOURCE) {\n ctx.clearRect(frame.xOffset, frame.yOffset, frame.width, frame.height);\n }\n return ctx.drawImage(frame.image, frame.xOffset, frame.yOffset);\n };\n\n PNG.prototype.animate = function(ctx) {\n var doFrame,\n frameNumber,\n frames,\n numFrames,\n numPlays,\n _ref,\n _this = this;\n frameNumber = 0;\n (_ref = this.animation),\n (numFrames = _ref.numFrames),\n (frames = _ref.frames),\n (numPlays = _ref.numPlays);\n return (doFrame = function() {\n var f, frame;\n f = frameNumber++ % numFrames;\n frame = frames[f];\n _this.renderFrame(ctx, f);\n if (numFrames > 1 && frameNumber / numFrames < numPlays) {\n return (_this.animation._timeout = setTimeout(doFrame, frame.delay));\n }\n })();\n };\n\n PNG.prototype.stopAnimation = function() {\n var _ref;\n return clearTimeout(\n (_ref = this.animation) != null ? _ref._timeout : void 0\n );\n };\n\n PNG.prototype.render = function(canvas) {\n var ctx, data;\n if (canvas._png) {\n canvas._png.stopAnimation();\n }\n canvas._png = this;\n canvas.width = this.width;\n canvas.height = this.height;\n ctx = canvas.getContext(\"2d\");\n if (this.animation) {\n this.decodeFrames(ctx);\n return this.animate(ctx);\n } else {\n data = ctx.createImageData(this.width, this.height);\n this.copyToImageData(data, this.decodePixels());\n return ctx.putImageData(data, 0, 0);\n }\n };\n\n return PNG;\n})();\n\nexport { PNG };\n","/** @license\n * MIT license.\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF split_text_to_size plugin\n *\n * @name split_text_to_size\n * @module\n */\n(function(API) {\n \"use strict\";\n /**\n * Returns an array of length matching length of the 'word' string, with each\n * cell occupied by the width of the char in that position.\n *\n * @name getCharWidthsArray\n * @function\n * @param {string} text\n * @param {Object} options\n * @returns {Array}\n */\n var getCharWidthsArray = (API.getCharWidthsArray = function(text, options) {\n options = options || {};\n\n var activeFont = options.font || this.internal.getFont();\n var fontSize = options.fontSize || this.internal.getFontSize();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n\n var widths = options.widths\n ? options.widths\n : activeFont.metadata.Unicode.widths;\n var widthsFractionOf = widths.fof ? widths.fof : 1;\n var kerning = options.kerning\n ? options.kerning\n : activeFont.metadata.Unicode.kerning;\n var kerningFractionOf = kerning.fof ? kerning.fof : 1;\n var doKerning = options.doKerning === false ? false : true;\n var kerningValue = 0;\n\n var i;\n var length = text.length;\n var char_code;\n var prior_char_code = 0; //for kerning\n var default_char_width = widths[0] || widthsFractionOf;\n var output = [];\n\n for (i = 0; i < length; i++) {\n char_code = text.charCodeAt(i);\n\n if (typeof activeFont.metadata.widthOfString === \"function\") {\n output.push(\n (activeFont.metadata.widthOfGlyph(\n activeFont.metadata.characterToGlyph(char_code)\n ) +\n charSpace * (1000 / fontSize) || 0) / 1000\n );\n } else {\n if (\n doKerning &&\n typeof kerning[char_code] === \"object\" &&\n !isNaN(parseInt(kerning[char_code][prior_char_code], 10))\n ) {\n kerningValue =\n kerning[char_code][prior_char_code] / kerningFractionOf;\n } else {\n kerningValue = 0;\n }\n output.push(\n (widths[char_code] || default_char_width) / widthsFractionOf +\n kerningValue\n );\n }\n prior_char_code = char_code;\n }\n\n return output;\n });\n\n /**\n * Returns a widths of string in a given font, if the font size is set as 1 point.\n *\n * In other words, this is \"proportional\" value. For 1 unit of font size, the length\n * of the string will be that much.\n *\n * Multiply by font size to get actual width in *points*\n * Then divide by 72 to get inches or divide by (72/25.6) to get 'mm' etc.\n *\n * @name getStringUnitWidth\n * @public\n * @function\n * @param {string} text\n * @param {string} options\n * @returns {number} result\n */\n var getStringUnitWidth = (API.getStringUnitWidth = function(text, options) {\n options = options || {};\n\n var fontSize = options.fontSize || this.internal.getFontSize();\n var font = options.font || this.internal.getFont();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n var result = 0;\n\n if (API.processArabic) {\n text = API.processArabic(text);\n }\n\n if (typeof font.metadata.widthOfString === \"function\") {\n result =\n font.metadata.widthOfString(text, fontSize, charSpace) / fontSize;\n } else {\n result = getCharWidthsArray\n .apply(this, arguments)\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n }\n return result;\n });\n\n /**\n returns array of lines\n */\n var splitLongWord = function(word, widths_array, firstLineMaxLen, maxLen) {\n var answer = [];\n\n // 1st, chop off the piece that can fit on the hanging line.\n var i = 0,\n l = word.length,\n workingLen = 0;\n while (i !== l && workingLen + widths_array[i] < firstLineMaxLen) {\n workingLen += widths_array[i];\n i++;\n }\n // this is first line.\n answer.push(word.slice(0, i));\n\n // 2nd. Split the rest into maxLen pieces.\n var startOfLine = i;\n workingLen = 0;\n while (i !== l) {\n if (workingLen + widths_array[i] > maxLen) {\n answer.push(word.slice(startOfLine, i));\n workingLen = 0;\n startOfLine = i;\n }\n workingLen += widths_array[i];\n i++;\n }\n if (startOfLine !== i) {\n answer.push(word.slice(startOfLine, i));\n }\n\n return answer;\n };\n\n // Note, all sizing inputs for this function must be in \"font measurement units\"\n // By default, for PDF, it's \"point\".\n var splitParagraphIntoLines = function(text, maxlen, options) {\n // at this time works only on Western scripts, ones with space char\n // separating the words. Feel free to expand.\n\n if (!options) {\n options = {};\n }\n\n var line = [],\n lines = [line],\n line_length = options.textIndent || 0,\n separator_length = 0,\n current_word_length = 0,\n word,\n widths_array,\n words = text.split(\" \"),\n spaceCharWidth = getCharWidthsArray.apply(this, [\" \", options])[0],\n i,\n l,\n tmp,\n lineIndent;\n\n if (options.lineIndent === -1) {\n lineIndent = words[0].length + 2;\n } else {\n lineIndent = options.lineIndent || 0;\n }\n if (lineIndent) {\n var pad = Array(lineIndent).join(\" \"),\n wrds = [];\n words.map(function(wrd) {\n wrd = wrd.split(/\\s*\\n/);\n if (wrd.length > 1) {\n wrds = wrds.concat(\n wrd.map(function(wrd, idx) {\n return (idx && wrd.length ? \"\\n\" : \"\") + wrd;\n })\n );\n } else {\n wrds.push(wrd[0]);\n }\n });\n words = wrds;\n lineIndent = getStringUnitWidth.apply(this, [pad, options]);\n }\n\n for (i = 0, l = words.length; i < l; i++) {\n var force = 0;\n\n word = words[i];\n if (lineIndent && word[0] == \"\\n\") {\n word = word.substr(1);\n force = 1;\n }\n widths_array = getCharWidthsArray.apply(this, [word, options]);\n current_word_length = widths_array.reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n\n if (\n line_length + separator_length + current_word_length > maxlen ||\n force\n ) {\n if (current_word_length > maxlen) {\n // this happens when you have space-less long URLs for example.\n // we just chop these to size. We do NOT insert hiphens\n tmp = splitLongWord.apply(this, [\n word,\n widths_array,\n maxlen - (line_length + separator_length),\n maxlen\n ]);\n // first line we add to existing line object\n line.push(tmp.shift()); // it's ok to have extra space indicator there\n // last line we make into new line object\n line = [tmp.pop()];\n // lines in the middle we apped to lines object as whole lines\n while (tmp.length) {\n lines.push([tmp.shift()]); // single fragment occupies whole line\n }\n current_word_length = widths_array\n .slice(word.length - (line[0] ? line[0].length : 0))\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n } else {\n // just put it on a new line\n line = [word];\n }\n\n // now we attach new line to lines\n lines.push(line);\n line_length = current_word_length + lineIndent;\n separator_length = spaceCharWidth;\n } else {\n line.push(word);\n\n line_length += separator_length + current_word_length;\n separator_length = spaceCharWidth;\n }\n }\n\n var postProcess;\n if (lineIndent) {\n postProcess = function(ln, idx) {\n return (idx ? pad : \"\") + ln.join(\" \");\n };\n } else {\n postProcess = function(ln) {\n return ln.join(\" \");\n };\n }\n\n return lines.map(postProcess);\n };\n\n /**\n * Splits a given string into an array of strings. Uses 'size' value\n * (in measurement units declared as default for the jsPDF instance)\n * and the font's \"widths\" and \"Kerning\" tables, where available, to\n * determine display length of a given string for a given font.\n *\n * We use character's 100% of unit size (height) as width when Width\n * table or other default width is not available.\n *\n * @name splitTextToSize\n * @public\n * @function\n * @param {string} text Unencoded, regular JavaScript (Unicode, UTF-16 / UCS-2) string.\n * @param {number} size Nominal number, measured in units default to this instance of jsPDF.\n * @param {Object} options Optional flags needed for chopper to do the right thing.\n * @returns {Array} array Array with strings chopped to size.\n */\n API.splitTextToSize = function(text, maxlen, options) {\n \"use strict\";\n\n options = options || {};\n\n var fsize = options.fontSize || this.internal.getFontSize(),\n newOptions = function(options) {\n var widths = {\n 0: 1\n },\n kerning = {};\n\n if (!options.widths || !options.kerning) {\n var f = this.internal.getFont(options.fontName, options.fontStyle),\n encoding = \"Unicode\";\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE\n // Actual JavaScript-native String's 16bit char codes used.\n // no multi-byte logic here\n\n if (f.metadata[encoding]) {\n return {\n widths: f.metadata[encoding].widths || widths,\n kerning: f.metadata[encoding].kerning || kerning\n };\n } else {\n return {\n font: f.metadata,\n fontSize: this.internal.getFontSize(),\n charSpace: this.internal.getCharSpace()\n };\n }\n } else {\n return {\n widths: options.widths,\n kerning: options.kerning\n };\n }\n }.call(this, options);\n\n // first we split on end-of-line chars\n var paragraphs;\n if (Array.isArray(text)) {\n paragraphs = text;\n } else {\n paragraphs = String(text).split(/\\r?\\n/);\n }\n\n // now we convert size (max length of line) into \"font size units\"\n // at present time, the \"font size unit\" is always 'point'\n // 'proportional' means, \"in proportion to font size\"\n var fontUnit_maxLen = (1.0 * this.internal.scaleFactor * maxlen) / fsize;\n // at this time, fsize is always in \"points\" regardless of the default measurement unit of the doc.\n // this may change in the future?\n // until then, proportional_maxlen is likely to be in 'points'\n\n // If first line is to be indented (shorter or longer) than maxLen\n // we indicate that by using CSS-style \"text-indent\" option.\n // here it's in font units too (which is likely 'points')\n // it can be negative (which makes the first line longer than maxLen)\n newOptions.textIndent = options.textIndent\n ? (options.textIndent * 1.0 * this.internal.scaleFactor) / fsize\n : 0;\n newOptions.lineIndent = options.lineIndent;\n\n var i,\n l,\n output = [];\n for (i = 0, l = paragraphs.length; i < l; i++) {\n output = output.concat(\n splitParagraphIntoLines.apply(this, [\n paragraphs[i],\n fontUnit_maxLen,\n newOptions\n ])\n );\n }\n\n return output;\n };\n})(jsPDF.API);\n","/**\n * @license\n * (c) Dean McNamee , 2013.\n *\n * https://github.com/deanm/omggif\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n * including animation and compression. It does not rely on any specific\n * underlying system, so should run in the browser, Node, or Plask.\n */\n\n\"use strict\";\n\nimport { console } from \"./console.js\";\n\nfunction GifWriter(buf, width, height, gopts) {\n var p = 0;\n\n var gopts = gopts === undefined ? {} : gopts;\n var loop_count = gopts.loop === undefined ? null : gopts.loop;\n var global_palette = gopts.palette === undefined ? null : gopts.palette;\n\n if (width <= 0 || height <= 0 || width > 65535 || height > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n function check_palette_and_num_colors(palette) {\n var num_colors = palette.length;\n if (num_colors < 2 || num_colors > 256 || num_colors & (num_colors - 1)) {\n throw new Error(\n \"Invalid code/color length, must be power of 2 and 2 .. 256.\"\n );\n }\n return num_colors;\n }\n\n // - Header.\n buf[p++] = 0x47;\n buf[p++] = 0x49;\n buf[p++] = 0x46; // GIF\n buf[p++] = 0x38;\n buf[p++] = 0x39;\n buf[p++] = 0x61; // 89a\n\n // Handling of Global Color Table (palette) and background index.\n var gp_num_colors_pow2 = 0;\n var background = 0;\n if (global_palette !== null) {\n var gp_num_colors = check_palette_and_num_colors(global_palette);\n while ((gp_num_colors >>= 1)) ++gp_num_colors_pow2;\n gp_num_colors = 1 << gp_num_colors_pow2;\n --gp_num_colors_pow2;\n if (gopts.background !== undefined) {\n background = gopts.background;\n if (background >= gp_num_colors)\n throw new Error(\"Background index out of range.\");\n // The GIF spec states that a background index of 0 should be ignored, so\n // this is probably a mistake and you really want to set it to another\n // slot in the palette. But actually in the end most browsers, etc end\n // up ignoring this almost completely (including for dispose background).\n if (background === 0)\n throw new Error(\"Background index explicitly passed as 0.\");\n }\n }\n\n // - Logical Screen Descriptor.\n // NOTE(deanm): w/h apparently ignored by implementations, but set anyway.\n buf[p++] = width & 0xff;\n buf[p++] = (width >> 8) & 0xff;\n buf[p++] = height & 0xff;\n buf[p++] = (height >> 8) & 0xff;\n // NOTE: Indicates 0-bpp original color resolution (unused?).\n buf[p++] = (global_palette !== null ? 0x80 : 0) | gp_num_colors_pow2; // Global Color Table Flag. // NOTE: No sort flag (unused?).\n buf[p++] = background; // Background Color Index.\n buf[p++] = 0; // Pixel aspect ratio (unused?).\n\n // - Global Color Table\n if (global_palette !== null) {\n for (var i = 0, il = global_palette.length; i < il; ++i) {\n var rgb = global_palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n if (loop_count !== null) {\n // Netscape block for looping.\n if (loop_count < 0 || loop_count > 65535)\n throw new Error(\"Loop count invalid.\");\n // Extension code, label, and length.\n buf[p++] = 0x21;\n buf[p++] = 0xff;\n buf[p++] = 0x0b;\n // NETSCAPE2.0\n buf[p++] = 0x4e;\n buf[p++] = 0x45;\n buf[p++] = 0x54;\n buf[p++] = 0x53;\n buf[p++] = 0x43;\n buf[p++] = 0x41;\n buf[p++] = 0x50;\n buf[p++] = 0x45;\n buf[p++] = 0x32;\n buf[p++] = 0x2e;\n buf[p++] = 0x30;\n // Sub-block\n buf[p++] = 0x03;\n buf[p++] = 0x01;\n buf[p++] = loop_count & 0xff;\n buf[p++] = (loop_count >> 8) & 0xff;\n buf[p++] = 0x00; // Terminator.\n }\n\n var ended = false;\n\n this.addFrame = function(x, y, w, h, indexed_pixels, opts) {\n if (ended === true) {\n --p;\n ended = false;\n } // Un-end.\n\n opts = opts === undefined ? {} : opts;\n\n // TODO(deanm): Bounds check x, y. Do they need to be within the virtual\n // canvas width/height, I imagine?\n if (x < 0 || y < 0 || x > 65535 || y > 65535)\n throw new Error(\"x/y invalid.\");\n\n if (w <= 0 || h <= 0 || w > 65535 || h > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n if (indexed_pixels.length < w * h)\n throw new Error(\"Not enough pixels for the frame size.\");\n\n var using_local_palette = true;\n var palette = opts.palette;\n if (palette === undefined || palette === null) {\n using_local_palette = false;\n palette = global_palette;\n }\n\n if (palette === undefined || palette === null)\n throw new Error(\"Must supply either a local or global palette.\");\n\n var num_colors = check_palette_and_num_colors(palette);\n\n // Compute the min_code_size (power of 2), destroying num_colors.\n var min_code_size = 0;\n while ((num_colors >>= 1)) ++min_code_size;\n num_colors = 1 << min_code_size; // Now we can easily get it back.\n\n var delay = opts.delay === undefined ? 0 : opts.delay;\n\n // From the spec:\n // 0 - No disposal specified. The decoder is\n // not required to take any action.\n // 1 - Do not dispose. The graphic is to be left\n // in place.\n // 2 - Restore to background color. The area used by the\n // graphic must be restored to the background color.\n // 3 - Restore to previous. The decoder is required to\n // restore the area overwritten by the graphic with\n // what was there prior to rendering the graphic.\n // 4-7 - To be defined.\n // NOTE(deanm): Dispose background doesn't really work, apparently most\n // browsers ignore the background palette index and clear to transparency.\n var disposal = opts.disposal === undefined ? 0 : opts.disposal;\n if (disposal < 0 || disposal > 3)\n // 4-7 is reserved.\n throw new Error(\"Disposal out of range.\");\n\n var use_transparency = false;\n var transparent_index = 0;\n if (opts.transparent !== undefined && opts.transparent !== null) {\n use_transparency = true;\n transparent_index = opts.transparent;\n if (transparent_index < 0 || transparent_index >= num_colors)\n throw new Error(\"Transparent color index.\");\n }\n\n if (disposal !== 0 || use_transparency || delay !== 0) {\n // - Graphics Control Extension\n buf[p++] = 0x21;\n buf[p++] = 0xf9; // Extension / Label.\n buf[p++] = 4; // Byte size.\n\n buf[p++] = (disposal << 2) | (use_transparency === true ? 1 : 0);\n buf[p++] = delay & 0xff;\n buf[p++] = (delay >> 8) & 0xff;\n buf[p++] = transparent_index; // Transparent color index.\n buf[p++] = 0; // Block Terminator.\n }\n\n // - Image Descriptor\n buf[p++] = 0x2c; // Image Seperator.\n buf[p++] = x & 0xff;\n buf[p++] = (x >> 8) & 0xff; // Left.\n buf[p++] = y & 0xff;\n buf[p++] = (y >> 8) & 0xff; // Top.\n buf[p++] = w & 0xff;\n buf[p++] = (w >> 8) & 0xff;\n buf[p++] = h & 0xff;\n buf[p++] = (h >> 8) & 0xff;\n // NOTE: No sort flag (unused?).\n // TODO(deanm): Support interlace.\n buf[p++] = using_local_palette === true ? 0x80 | (min_code_size - 1) : 0;\n\n // - Local Color Table\n if (using_local_palette === true) {\n for (var i = 0, il = palette.length; i < il; ++i) {\n var rgb = palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n p = GifWriterOutputLZWCodeStream(\n buf,\n p,\n min_code_size < 2 ? 2 : min_code_size,\n indexed_pixels\n );\n\n return p;\n };\n\n this.end = function() {\n if (ended === false) {\n buf[p++] = 0x3b; // Trailer.\n ended = true;\n }\n return p;\n };\n\n this.getOutputBuffer = function() {\n return buf;\n };\n this.setOutputBuffer = function(v) {\n buf = v;\n };\n this.getOutputBufferPosition = function() {\n return p;\n };\n this.setOutputBufferPosition = function(v) {\n p = v;\n };\n}\n\n// Main compression routine, palette indexes -> LZW code stream.\n// |index_stream| must have at least one entry.\nfunction GifWriterOutputLZWCodeStream(buf, p, min_code_size, index_stream) {\n buf[p++] = min_code_size;\n var cur_subblock = p++; // Pointing at the length field.\n\n var clear_code = 1 << min_code_size;\n var code_mask = clear_code - 1;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n var cur_shift = 0;\n // We have at most 12-bit codes, so we should have to hold a max of 19\n // bits here (and then we would write out).\n var cur = 0;\n\n function emit_bytes_to_buffer(bit_block_size) {\n while (cur_shift >= bit_block_size) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n }\n\n function emit_code(c) {\n cur |= c << cur_shift;\n cur_shift += cur_code_size;\n emit_bytes_to_buffer(8);\n }\n\n // I am not an expert on the topic, and I don't want to write a thesis.\n // However, it is good to outline here the basic algorithm and the few data\n // structures and optimizations here that make this implementation fast.\n // The basic idea behind LZW is to build a table of previously seen runs\n // addressed by a short id (herein called output code). All data is\n // referenced by a code, which represents one or more values from the\n // original input stream. All input bytes can be referenced as the same\n // value as an output code. So if you didn't want any compression, you\n // could more or less just output the original bytes as codes (there are\n // some details to this, but it is the idea). In order to achieve\n // compression, values greater then the input range (codes can be up to\n // 12-bit while input only 8-bit) represent a sequence of previously seen\n // inputs. The decompressor is able to build the same mapping while\n // decoding, so there is always a shared common knowledge between the\n // encoding and decoder, which is also important for \"timing\" aspects like\n // how to handle variable bit width code encoding.\n //\n // One obvious but very important consequence of the table system is there\n // is always a unique id (at most 12-bits) to map the runs. 'A' might be\n // 4, then 'AA' might be 10, 'AAA' 11, 'AAAA' 12, etc. This relationship\n // can be used for an effecient lookup strategy for the code mapping. We\n // need to know if a run has been seen before, and be able to map that run\n // to the output code. Since we start with known unique ids (input bytes),\n // and then from those build more unique ids (table entries), we can\n // continue this chain (almost like a linked list) to always have small\n // integer values that represent the current byte chains in the encoder.\n // This means instead of tracking the input bytes (AAAABCD) to know our\n // current state, we can track the table entry for AAAABC (it is guaranteed\n // to exist by the nature of the algorithm) and the next character D.\n // Therefor the tuple of (table_entry, byte) is guaranteed to also be\n // unique. This allows us to create a simple lookup key for mapping input\n // sequences to codes (table indices) without having to store or search\n // any of the code sequences. So if 'AAAA' has a table entry of 12, the\n // tuple of ('AAAA', K) for any input byte K will be unique, and can be our\n // key. This leads to a integer value at most 20-bits, which can always\n // fit in an SMI value and be used as a fast sparse array / object key.\n\n // Output code for the current contents of the index buffer.\n var ib_code = index_stream[0] & code_mask; // Load first input index.\n var code_table = {}; // Key'd on our 20-bit \"tuple\".\n\n emit_code(clear_code); // Spec says first code should be a clear code.\n\n // First index already loaded, process the rest of the stream.\n for (var i = 1, il = index_stream.length; i < il; ++i) {\n var k = index_stream[i] & code_mask;\n var cur_key = (ib_code << 8) | k; // (prev, k) unique tuple.\n var cur_code = code_table[cur_key]; // buffer + k.\n\n // Check if we have to create a new code table entry.\n if (cur_code === undefined) {\n // We don't have buffer + k.\n // Emit index buffer (without k).\n // This is an inline version of emit_code, because this is the core\n // writing routine of the compressor (and V8 cannot inline emit_code\n // because it is a closure here in a different context). Additionally\n // we can call emit_byte_to_buffer less often, because we can have\n // 30-bits (from our 31-bit signed SMI), and we know our codes will only\n // be 12-bits, so can safely have 18-bits there without overflow.\n // emit_code(ib_code);\n cur |= ib_code << cur_shift;\n cur_shift += cur_code_size;\n while (cur_shift >= 8) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n\n if (next_code === 4096) {\n // Table full, need a clear.\n emit_code(clear_code);\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_table = {};\n } else {\n // Table not full, insert a new entry.\n // Increase our variable bit code sizes if necessary. This is a bit\n // tricky as it is based on \"timing\" between the encoding and\n // decoder. From the encoders perspective this should happen after\n // we've already emitted the index buffer and are about to create the\n // first table entry that would overflow our current code bit size.\n if (next_code >= 1 << cur_code_size) ++cur_code_size;\n code_table[cur_key] = next_code++; // Insert into code table.\n }\n\n ib_code = k; // Index buffer to single input k.\n } else {\n ib_code = cur_code; // Index buffer to sequence in code table.\n }\n }\n\n emit_code(ib_code); // There will still be something in the index buffer.\n emit_code(eoi_code); // End Of Information.\n\n // Flush / finalize the sub-blocks stream to the buffer.\n emit_bytes_to_buffer(1);\n\n // Finish the sub-blocks, writing out any unfinished lengths and\n // terminating with a sub-block of length 0. If we have already started\n // but not yet used a sub-block it can just become the terminator.\n if (cur_subblock + 1 === p) {\n // Started but unused.\n buf[cur_subblock] = 0;\n } else {\n // Started and used, write length and additional terminator block.\n buf[cur_subblock] = p - cur_subblock - 1;\n buf[p++] = 0;\n }\n return p;\n}\n\nfunction GifReader(buf) {\n var p = 0;\n\n // - Header (GIF87a or GIF89a).\n if (\n buf[p++] !== 0x47 ||\n buf[p++] !== 0x49 ||\n buf[p++] !== 0x46 ||\n buf[p++] !== 0x38 ||\n ((buf[p++] + 1) & 0xfd) !== 0x38 ||\n buf[p++] !== 0x61\n ) {\n throw new Error(\"Invalid GIF 87a/89a header.\");\n }\n\n // - Logical Screen Descriptor.\n var width = buf[p++] | (buf[p++] << 8);\n var height = buf[p++] | (buf[p++] << 8);\n var pf0 = buf[p++]; // .\n var global_palette_flag = pf0 >> 7;\n var num_global_colors_pow2 = pf0 & 0x7;\n var num_global_colors = 1 << (num_global_colors_pow2 + 1);\n var background = buf[p++];\n buf[p++]; // Pixel aspect ratio (unused?).\n\n var global_palette_offset = null;\n var global_palette_size = null;\n\n if (global_palette_flag) {\n global_palette_offset = p;\n global_palette_size = num_global_colors;\n p += num_global_colors * 3; // Seek past palette.\n }\n\n var no_eof = true;\n\n var frames = [];\n\n var delay = 0;\n var transparent_index = null;\n var disposal = 0; // 0 - No disposal specified.\n var loop_count = null;\n\n this.width = width;\n this.height = height;\n\n while (no_eof && p < buf.length) {\n switch (buf[p++]) {\n case 0x21: // Graphics Control Extension Block\n switch (buf[p++]) {\n case 0xff: // Application specific block\n // Try if it's a Netscape block (with animation loop counter).\n if (\n buf[p] !== 0x0b || // 21 FF already read, check block size.\n // NETSCAPE2.0\n (buf[p + 1] == 0x4e &&\n buf[p + 2] == 0x45 &&\n buf[p + 3] == 0x54 &&\n buf[p + 4] == 0x53 &&\n buf[p + 5] == 0x43 &&\n buf[p + 6] == 0x41 &&\n buf[p + 7] == 0x50 &&\n buf[p + 8] == 0x45 &&\n buf[p + 9] == 0x32 &&\n buf[p + 10] == 0x2e &&\n buf[p + 11] == 0x30 &&\n // Sub-block\n buf[p + 12] == 0x03 &&\n buf[p + 13] == 0x01 &&\n buf[p + 16] == 0)\n ) {\n p += 14;\n loop_count = buf[p++] | (buf[p++] << 8);\n p++; // Skip terminator.\n } else {\n // We don't know what it is, just try to get past it.\n p += 12;\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n }\n break;\n\n case 0xf9: // Graphics Control Extension\n if (buf[p++] !== 0x4 || buf[p + 4] !== 0)\n throw new Error(\"Invalid graphics extension block.\");\n var pf1 = buf[p++];\n delay = buf[p++] | (buf[p++] << 8);\n transparent_index = buf[p++];\n if ((pf1 & 1) === 0) transparent_index = null;\n disposal = (pf1 >> 2) & 0x7;\n p++; // Skip terminator.\n break;\n\n case 0xfe: // Comment Extension.\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n // console.log(buf.slice(p, p+block_size).toString('ascii'));\n p += block_size;\n }\n break;\n\n default:\n throw new Error(\n \"Unknown graphic control label: 0x\" + buf[p - 1].toString(16)\n );\n }\n break;\n\n case 0x2c: // Image Descriptor.\n var x = buf[p++] | (buf[p++] << 8);\n var y = buf[p++] | (buf[p++] << 8);\n var w = buf[p++] | (buf[p++] << 8);\n var h = buf[p++] | (buf[p++] << 8);\n var pf2 = buf[p++];\n var local_palette_flag = pf2 >> 7;\n var interlace_flag = (pf2 >> 6) & 1;\n var num_local_colors_pow2 = pf2 & 0x7;\n var num_local_colors = 1 << (num_local_colors_pow2 + 1);\n var palette_offset = global_palette_offset;\n var palette_size = global_palette_size;\n var has_local_palette = false;\n if (local_palette_flag) {\n var has_local_palette = true;\n palette_offset = p; // Override with local palette.\n palette_size = num_local_colors;\n p += num_local_colors * 3; // Seek past palette.\n }\n\n var data_offset = p;\n\n p++; // codesize\n while (true) {\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n\n frames.push({\n x: x,\n y: y,\n width: w,\n height: h,\n has_local_palette: has_local_palette,\n palette_offset: palette_offset,\n palette_size: palette_size,\n data_offset: data_offset,\n data_length: p - data_offset,\n transparent_index: transparent_index,\n interlaced: !!interlace_flag,\n delay: delay,\n disposal: disposal\n });\n break;\n\n case 0x3b: // Trailer Marker (end of file).\n no_eof = false;\n break;\n\n default:\n throw new Error(\"Unknown gif block: 0x\" + buf[p - 1].toString(16));\n break;\n }\n }\n\n this.numFrames = function() {\n return frames.length;\n };\n\n this.loopCount = function() {\n return loop_count;\n };\n\n this.frameInfo = function(frame_num) {\n if (frame_num < 0 || frame_num >= frames.length)\n throw new Error(\"Frame index out of range.\");\n return frames[frame_num];\n };\n\n this.decodeAndBlitFrameBGRA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = b;\n pixels[op++] = g;\n pixels[op++] = r;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n\n // I will go to copy and paste hell one day...\n this.decodeAndBlitFrameRGBA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = r;\n pixels[op++] = g;\n pixels[op++] = b;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n}\n\nfunction GifReaderLZWOutputIndexStream(code_stream, p, output, output_length) {\n var min_code_size = code_stream[p++];\n\n var clear_code = 1 << min_code_size;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n // NOTE: This shares the same name as the encoder, but has a different\n // meaning here. Here this masks each code coming from the code stream.\n var code_mask = (1 << cur_code_size) - 1;\n var cur_shift = 0;\n var cur = 0;\n\n var op = 0; // Output pointer.\n\n var subblock_size = code_stream[p++];\n\n // TODO(deanm): Would using a TypedArray be any faster? At least it would\n // solve the fast mode / backing store uncertainty.\n // var code_table = Array(4096);\n var code_table = new Int32Array(4096); // Can be signed, we only use 20 bits.\n\n var prev_code = null; // Track code-1.\n\n while (true) {\n // Read up to two bytes, making sure we always 12-bits for max sized code.\n while (cur_shift < 16) {\n if (subblock_size === 0) break; // No more data to be read.\n\n cur |= code_stream[p++] << cur_shift;\n cur_shift += 8;\n\n if (subblock_size === 1) {\n // Never let it get to 0 to hold logic above.\n subblock_size = code_stream[p++]; // Next subblock.\n } else {\n --subblock_size;\n }\n }\n\n // TODO(deanm): We should never really get here, we should have received\n // and EOI.\n if (cur_shift < cur_code_size) break;\n\n var code = cur & code_mask;\n cur >>= cur_code_size;\n cur_shift -= cur_code_size;\n\n // TODO(deanm): Maybe should check that the first code was a clear code,\n // at least this is what you're supposed to do. But actually our encoder\n // now doesn't emit a clear code first anyway.\n if (code === clear_code) {\n // We don't actually have to clear the table. This could be a good idea\n // for greater error checking, but we don't really do any anyway. We\n // will just track it with next_code and overwrite old entries.\n\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_mask = (1 << cur_code_size) - 1;\n\n // Don't update prev_code ?\n prev_code = null;\n continue;\n } else if (code === eoi_code) {\n break;\n }\n\n // We have a similar situation as the decoder, where we want to store\n // variable length entries (code table entries), but we want to do in a\n // faster manner than an array of arrays. The code below stores sort of a\n // linked list within the code table, and then \"chases\" through it to\n // construct the dictionary entries. When a new entry is created, just the\n // last byte is stored, and the rest (prefix) of the entry is only\n // referenced by its table entry. Then the code chases through the\n // prefixes until it reaches a single byte code. We have to chase twice,\n // first to compute the length, and then to actually copy the data to the\n // output (backwards, since we know the length). The alternative would be\n // storing something in an intermediate stack, but that doesn't make any\n // more sense. I implemented an approach where it also stored the length\n // in the code table, although it's a bit tricky because you run out of\n // bits (12 + 12 + 8), but I didn't measure much improvements (the table\n // entries are generally not the long). Even when I created benchmarks for\n // very long table entries the complexity did not seem worth it.\n // The code table stores the prefix entry in 12 bits and then the suffix\n // byte in 8 bits, so each entry is 20 bits.\n\n var chase_code = code < next_code ? code : prev_code;\n\n // Chase what we will output, either {CODE} or {CODE-1}.\n var chase_length = 0;\n var chase = chase_code;\n while (chase > clear_code) {\n chase = code_table[chase] >> 8;\n ++chase_length;\n }\n\n var k = chase;\n\n var op_end = op + chase_length + (chase_code !== code ? 1 : 0);\n if (op_end > output_length) {\n console.log(\"Warning, gif stream longer than expected.\");\n return;\n }\n\n // Already have the first byte from the chase, might as well write it fast.\n output[op++] = k;\n\n op += chase_length;\n var b = op; // Track pointer, writing backwards.\n\n if (chase_code !== code)\n // The case of emitting {CODE-1} + k.\n output[op++] = k;\n\n chase = chase_code;\n while (chase_length--) {\n chase = code_table[chase];\n output[--b] = chase & 0xff; // Write backwards.\n chase >>= 8; // Pull down to the prefix code.\n }\n\n if (prev_code !== null && next_code < 4096) {\n code_table[next_code++] = (prev_code << 8) | k;\n // TODO(deanm): Figure out this clearing vs code growth logic better. I\n // have an feeling that it should just happen somewhere else, for now it\n // is awkward between when we grow past the max and then hit a clear code.\n // For now just check if we hit the max 12-bits (then a clear code should\n // follow, also of course encoded in 12-bits).\n if (next_code >= code_mask + 1 && cur_code_size < 12) {\n ++cur_code_size;\n code_mask = (code_mask << 1) | 1;\n }\n }\n\n prev_code = code;\n }\n\n if (op !== output_length) {\n console.log(\"Warning, gif stream shorter than expected.\");\n }\n\n return output;\n}\n\nexport { GifReader, GifWriter };\n","/**\n * @license\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*\nJPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009\n\nBasic GUI blocking jpeg encoder\n*/\n\nfunction JPEGEncoder(quality) {\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT;\n var UVDC_HT;\n var YAC_HT;\n var UVAC_HT;\n\n var bitcode = new Array(65535);\n var category = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n\n var std_dc_luminance_nrcodes = [\n 0,\n 0,\n 1,\n 5,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 3,\n 3,\n 2,\n 4,\n 3,\n 5,\n 5,\n 4,\n 4,\n 0,\n 0,\n 1,\n 0x7d\n ];\n var std_ac_luminance_values = [\n 0x01,\n 0x02,\n 0x03,\n 0x00,\n 0x04,\n 0x11,\n 0x05,\n 0x12,\n 0x21,\n 0x31,\n 0x41,\n 0x06,\n 0x13,\n 0x51,\n 0x61,\n 0x07,\n 0x22,\n 0x71,\n 0x14,\n 0x32,\n 0x81,\n 0x91,\n 0xa1,\n 0x08,\n 0x23,\n 0x42,\n 0xb1,\n 0xc1,\n 0x15,\n 0x52,\n 0xd1,\n 0xf0,\n 0x24,\n 0x33,\n 0x62,\n 0x72,\n 0x82,\n 0x09,\n 0x0a,\n 0x16,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x25,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x34,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe1,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf1,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n var std_dc_chrominance_nrcodes = [\n 0,\n 0,\n 3,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 2,\n 4,\n 4,\n 3,\n 4,\n 7,\n 5,\n 4,\n 4,\n 0,\n 1,\n 2,\n 0x77\n ];\n var std_ac_chrominance_values = [\n 0x00,\n 0x01,\n 0x02,\n 0x03,\n 0x11,\n 0x04,\n 0x05,\n 0x21,\n 0x31,\n 0x06,\n 0x12,\n 0x41,\n 0x51,\n 0x07,\n 0x61,\n 0x71,\n 0x13,\n 0x22,\n 0x32,\n 0x81,\n 0x08,\n 0x14,\n 0x42,\n 0x91,\n 0xa1,\n 0xb1,\n 0xc1,\n 0x09,\n 0x23,\n 0x33,\n 0x52,\n 0xf0,\n 0x15,\n 0x62,\n 0x72,\n 0xd1,\n 0x0a,\n 0x16,\n 0x24,\n 0x34,\n 0xe1,\n 0x25,\n 0xf1,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x82,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n t = Math.min(Math.max(t, 1), 255);\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n u = Math.min(Math.max(u, 1), 255);\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1.0,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1.0,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1.0 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n fdtbl_UV[k] = 1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n k++;\n }\n }\n }\n\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n\n function initHuffmanTbl() {\n YDC_HT = computeHuffmanTbl(\n std_dc_luminance_nrcodes,\n std_dc_luminance_values\n );\n UVDC_HT = computeHuffmanTbl(\n std_dc_chrominance_nrcodes,\n std_dc_chrominance_values\n );\n YAC_HT = computeHuffmanTbl(\n std_ac_luminance_nrcodes,\n std_ac_luminance_values\n );\n UVAC_HT = computeHuffmanTbl(\n std_ac_chrominance_nrcodes,\n std_ac_chrominance_values\n );\n }\n\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n //Positive numbers\n for (var nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n //Negative numbers\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[(i + 256) >> 0] = 38470 * i;\n RGB_YUV_TABLE[(i + 512) >> 0] = 7471 * i + 0x8000;\n RGB_YUV_TABLE[(i + 768) >> 0] = -11059 * i;\n RGB_YUV_TABLE[(i + 1024) >> 0] = -21709 * i;\n RGB_YUV_TABLE[(i + 1280) >> 0] = 32768 * i + 0x807fff;\n RGB_YUV_TABLE[(i + 1536) >> 0] = -27439 * i;\n RGB_YUV_TABLE[(i + 1792) >> 0] = -5329 * i;\n }\n }\n\n // IO functions\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & (1 << posval)) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 0xff) {\n writeByte(0xff);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n\n function writeByte(value) {\n //byteout.push(clt[value]); // write char directly instead of converting later\n byteout.push(value);\n }\n\n function writeWord(value) {\n writeByte((value >> 8) & 0xff);\n writeByte(value & 0xff);\n }\n\n // DCT & quantization core\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n /* Pass 1: process rows. */\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n\n /* Even part */\n var tmp10 = tmp0 + tmp3; /* phase 2 */\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n\n data[dataOff] = tmp10 + tmp11; /* phase 3 */\n data[dataOff + 4] = tmp10 - tmp11;\n\n var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */\n data[dataOff + 2] = tmp13 + z1; /* phase 5 */\n data[dataOff + 6] = tmp13 - z1;\n\n /* Odd part */\n tmp10 = tmp4 + tmp5; /* phase 2 */\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */\n var z2 = 0.5411961 * tmp10 + z5; /* c2-c6 */\n var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */\n var z3 = tmp11 * 0.707106781; /* c4 */\n\n var z11 = tmp7 + z3; /* phase 5 */\n var z13 = tmp7 - z3;\n\n data[dataOff + 5] = z13 + z2; /* phase 6 */\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n\n dataOff += 8; /* advance pointer to next row */\n }\n\n /* Pass 2: process columns. */\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n\n /* Even part */\n var tmp10p2 = tmp0p2 + tmp3p2; /* phase 2 */\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n\n data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */\n data[dataOff + 16] = tmp13p2 + z1p2; /* phase 5 */\n data[dataOff + 48] = tmp13p2 - z1p2;\n\n /* Odd part */\n tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */\n var z2p2 = 0.5411961 * tmp10p2 + z5p2; /* c2-c6 */\n var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */\n var z3p2 = tmp11p2 * 0.707106781; /* c4 */\n\n var z11p2 = tmp7p2 + z3p2; /* phase 5 */\n var z13p2 = tmp7p2 - z3p2;\n\n data[dataOff + 40] = z13p2 + z2p2; /* phase 6 */\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n\n dataOff++; /* advance pointer to next column */\n }\n\n // Quantize/descale the coefficients\n var fDCTQuant;\n for (i = 0; i < I64; ++i) {\n // Apply the quantization and scaling factor & Round to nearest integer\n fDCTQuant = data[i] * fdtbl[i];\n outputfDCTQuant[i] =\n fDCTQuant > 0.0 ? (fDCTQuant + 0.5) | 0 : (fDCTQuant - 0.5) | 0;\n //outputfDCTQuant[i] = fround(fDCTQuant);\n }\n return outputfDCTQuant;\n }\n\n function writeAPP0() {\n writeWord(0xffe0); // marker\n writeWord(16); // length\n writeByte(0x4a); // J\n writeByte(0x46); // F\n writeByte(0x49); // I\n writeByte(0x46); // F\n writeByte(0); // = \"JFIF\",'\\0'\n writeByte(1); // versionhi\n writeByte(1); // versionlo\n writeByte(0); // xyunits\n writeWord(1); // xdensity\n writeWord(1); // ydensity\n writeByte(0); // thumbnwidth\n writeByte(0); // thumbnheight\n }\n\n function writeSOF0(width, height) {\n writeWord(0xffc0); // marker\n writeWord(17); // length, truecolor YUV JPG\n writeByte(8); // precision\n writeWord(height);\n writeWord(width);\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0x11); // HVY\n writeByte(0); // QTY\n writeByte(2); // IdU\n writeByte(0x11); // HVU\n writeByte(1); // QTU\n writeByte(3); // IdV\n writeByte(0x11); // HVV\n writeByte(1); // QTV\n }\n\n function writeDQT() {\n writeWord(0xffdb); // marker\n writeWord(132); // length\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n\n function writeDHT() {\n writeWord(0xffc4); // marker\n writeWord(0x01a2); // length\n\n writeByte(0); // HTYDCinfo\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n\n writeByte(0x10); // HTYACinfo\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n\n writeByte(1); // HTUDCinfo\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n\n writeByte(0x11); // HTUACinfo\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n\n function writeSOS() {\n writeWord(0xffda); // marker\n writeWord(12); // length\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0); // HTY\n writeByte(2); // IdU\n writeByte(0x11); // HTU\n writeByte(3); // IdV\n writeByte(0x11); // HTV\n writeByte(0); // Ss\n writeByte(0x3f); // Se\n writeByte(0); // Bf\n }\n\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0x00];\n var M16zeroes = HTAC[0xf0];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n //ZigZag reorder\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n //Encode DC\n if (Diff == 0) {\n writeBits(HTDC[0]); // Diff might be 0\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category[pos]]);\n writeBits(bitcode[pos]);\n }\n //Encode ACs\n var end0pos = 63; // was const... which is crazy\n while (end0pos > 0 && DU[end0pos] == 0) {\n end0pos--;\n }\n //end0pos = first element in reverse order !=0\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n while (DU[i] == 0 && i <= end0pos) {\n ++i;\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 0xf;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category[pos]]);\n writeBits(bitcode[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n ///// ACHTUNG // 255\n clt[i] = sfcc(i);\n }\n }\n\n this.encode = function(\n image,\n quality // image data object\n ) {\n if (quality) setQuality(quality);\n\n // Initialize bit writer\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n\n // Add JPEG headers\n writeWord(0xffd8); // SOI\n writeAPP0();\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n\n // Encode 8x8 macroblocks\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n\n bytenew = 0;\n bytepos = 7;\n\n this.encode.displayName = \"_encode_\";\n\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n\n var quadWidth = width * 4;\n\n var x,\n y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n col = -1;\n row = 0;\n\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3; // /8\n col = (pos & 7) * 4; // %8\n p = start + row * quadWidth + col;\n\n if (y + row >= height) {\n // padding bottom\n p -= quadWidth * (y + 1 + row - height);\n }\n\n if (x + col >= quadWidth) {\n // padding right\n p -= x + col - quadWidth + 4;\n }\n\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n\n /* // calculate YUV values dynamically\n\t\t\t\t\tYDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80\n\t\t\t\t\tUDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));\n\t\t\t\t\tVDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));\n\t\t\t\t\t*/\n\n // use lookup table (slightly faster)\n YDU[pos] =\n ((RGB_YUV_TABLE[r] +\n RGB_YUV_TABLE[(g + 256) >> 0] +\n RGB_YUV_TABLE[(b + 512) >> 0]) >>\n 16) -\n 128;\n UDU[pos] =\n ((RGB_YUV_TABLE[(r + 768) >> 0] +\n RGB_YUV_TABLE[(g + 1024) >> 0] +\n RGB_YUV_TABLE[(b + 1280) >> 0]) >>\n 16) -\n 128;\n VDU[pos] =\n ((RGB_YUV_TABLE[(r + 1280) >> 0] +\n RGB_YUV_TABLE[(g + 1536) >> 0] +\n RGB_YUV_TABLE[(b + 1792) >> 0]) >>\n 16) -\n 128;\n }\n\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);\n x += 32;\n }\n y += 8;\n }\n\n ////////////////////////////////////////////////////////////////\n\n // Do the bit alignment of the EOI marker\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << (bytepos + 1)) - 1;\n writeBits(fillbits);\n }\n\n writeWord(0xffd9); //EOI\n\n return new Uint8Array(byteout);\n };\n\n function setQuality(quality) {\n quality = Math.min(Math.max(quality, 1), 100);\n\n if (currentQuality == quality) return; // don't recalc if unchanged\n\n var sf =\n quality < 50 ? Math.floor(5000 / quality) : Math.floor(200 - quality * 2);\n\n initQuantTables(sf);\n currentQuality = quality;\n //console.log('Quality set to: '+quality +'%');\n }\n\n function init() {\n quality = quality || 50;\n // Create tables\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n\n setQuality(quality);\n }\n init();\n}\n\nexport { JPEGEncoder };\n","/**\n * @author shaozilee\n *\n * Bmp format decoder,support 1bit 4bit 8bit 24bit bmp\n *\n */\n\nimport { console } from \"./console.js\";\n\nfunction BmpDecoder(buffer, is_with_alpha) {\n this.pos = 0;\n this.buffer = buffer;\n this.datav = new DataView(buffer.buffer);\n this.is_with_alpha = !!is_with_alpha;\n this.bottom_up = true;\n this.flag =\n String.fromCharCode(this.buffer[0]) + String.fromCharCode(this.buffer[1]);\n this.pos += 2;\n if ([\"BM\", \"BA\", \"CI\", \"CP\", \"IC\", \"PT\"].indexOf(this.flag) === -1)\n throw new Error(\"Invalid BMP File\");\n this.parseHeader();\n this.parseBGR();\n}\n\nBmpDecoder.prototype.parseHeader = function() {\n this.fileSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.reserved = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.offset = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.headerSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.width = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.height = this.datav.getInt32(this.pos, true);\n this.pos += 4;\n this.planes = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.bitPP = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.compress = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.rawSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.hr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.vr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.colors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.importantColors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n\n if (this.bitPP === 16 && this.is_with_alpha) {\n this.bitPP = 15;\n }\n if (this.bitPP < 15) {\n var len = this.colors === 0 ? 1 << this.bitPP : this.colors;\n this.palette = new Array(len);\n for (var i = 0; i < len; i++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var quad = this.datav.getUint8(this.pos++, true);\n this.palette[i] = {\n red: red,\n green: green,\n blue: blue,\n quad: quad\n };\n }\n }\n if (this.height < 0) {\n this.height *= -1;\n this.bottom_up = false;\n }\n};\n\nBmpDecoder.prototype.parseBGR = function() {\n this.pos = this.offset;\n try {\n var bitn = \"bit\" + this.bitPP;\n var len = this.width * this.height * 4;\n this.data = new Uint8Array(len);\n\n this[bitn]();\n } catch (e) {\n console.log(\"bit decode error:\" + e);\n }\n};\n\nBmpDecoder.prototype.bit1 = function() {\n var xlen = Math.ceil(this.width / 8);\n var mode = xlen % 4;\n var y;\n for (y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 8 * 4;\n for (var i = 0; i < 8; i++) {\n if (x * 8 + i < this.width) {\n var rgb = this.palette[(b >> (7 - i)) & 0x1];\n this.data[location + i * 4] = rgb.blue;\n this.data[location + i * 4 + 1] = rgb.green;\n this.data[location + i * 4 + 2] = rgb.red;\n this.data[location + i * 4 + 3] = 0xff;\n } else {\n break;\n }\n }\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit4 = function() {\n var xlen = Math.ceil(this.width / 2);\n var mode = xlen % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 2 * 4;\n\n var before = b >> 4;\n var after = b & 0x0f;\n\n var rgb = this.palette[before];\n this.data[location] = rgb.blue;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.red;\n this.data[location + 3] = 0xff;\n\n if (x * 2 + 1 >= this.width) break;\n\n rgb = this.palette[after];\n this.data[location + 4] = rgb.blue;\n this.data[location + 4 + 1] = rgb.green;\n this.data[location + 4 + 2] = rgb.red;\n this.data[location + 4 + 3] = 0xff;\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit8 = function() {\n var mode = this.width % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n if (b < this.palette.length) {\n var rgb = this.palette[b];\n this.data[location] = rgb.red;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.blue;\n this.data[location + 3] = 0xff;\n } else {\n this.data[location] = 0xff;\n this.data[location + 1] = 0xff;\n this.data[location + 2] = 0xff;\n this.data[location + 3] = 0xff;\n }\n }\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit15 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_5) / _1_5) * 255) | 0;\n var red = ((((B >> 10) & _1_5) / _1_5) * 255) | 0;\n var alpha = B >> 15 ? 0xff : 0x00;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit16 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n var _111111 = parseInt(\"111111\", 2),\n _1_6 = _111111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var alpha = 0xff;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_6) / _1_6) * 255) | 0;\n var red = (((B >> 11) / _1_5) * 255) | 0;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit24 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = 0xff;\n }\n //skip extra bytes\n this.pos += this.width % 4;\n }\n};\n\n/**\n * add 32bit decode func\n * @author soubok\n */\nBmpDecoder.prototype.bit32 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var alpha = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n //this.pos += (this.width % 4);\n }\n};\n\nBmpDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { BmpDecoder };\n","function WebPDecoder(imageData) {\n /** @license\n * Copyright 2011 Google Inc.\n *\n * This code is licensed under the same terms as WebM:\n * Software License Agreement: http://www.webmproject.org/license/software/\n * Additional IP Rights Grant: http://www.webmproject.org/license/additional/\n * -----------------------------------------------------------------------------\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * -----------------------------------------------------------------------------\n *\n * Copyright 2011-2017 Dominik Homberger\n * Libwebp Javascript / libwebpjs - the libwebp implementation in javascript (v0.6.0)\n *\n * Author: Dominik Homberger (dominik.homberger@gmail.com)\n */\n\n var self = this;\n var UpsampleRgbLinePair,\n UpsampleBgrLinePair,\n UpsampleRgbaLinePair,\n UpsampleBgraLinePair,\n UpsampleArgbLinePair,\n UpsampleArgbLinePair,\n UpsampleRgba4444LinePair,\n UpsampleRgb565LinePair;\n\n function x(F) {\n if (!F) throw Error(\"assert :P\");\n }\n function fa(F, L, J) {\n for (var H = 0; 4 > H; H++) if (F[L + H] != J.charCodeAt(H)) return !0;\n return !1;\n }\n function I(F, L, J, H, Z) {\n for (var O = 0; O < Z; O++) F[L + O] = J[H + O];\n }\n function M(F, L, J, H) {\n for (var Z = 0; Z < H; Z++) F[L + Z] = J;\n }\n function V(F) {\n return new Int32Array(F);\n }\n function wa(F, L) {\n for (var J = [], H = 0; H < F; H++) J.push(new L());\n return J;\n }\n function wb() {\n function F(J, H, Z) {\n for (var O = Z[H], L = 0; L < O; L++) {\n J.push(Z.length > H + 1 ? [] : 0);\n if (Z.length < H + 1) break;\n F(J[L], H + 1, Z);\n }\n }\n var L = [];\n F(L, 0, [3, 11]);\n return L;\n }\n function Ed(F, L) {\n function J(H, O, F) {\n for (var Z = F[O], ma = 0; ma < Z; ma++) {\n H.push(F.length > O + 1 ? [] : new L());\n if (F.length < O + 1) break;\n J(H[ma], O + 1, F);\n }\n }\n var H = [];\n J(H, 0, F);\n return H;\n }\n var _WebPDecoder = function() {\n var self = this;\n function F() {\n V(55);\n }\n function L(a, b) {\n for (var c = (1 << (b - 1)) >>> 0; a & c; ) c >>>= 1;\n return c ? (a & (c - 1)) + c : a;\n }\n function J(a, b, c, d, e) {\n x(!(d % c));\n do (d -= c), (a[b + d] = e);\n while (0 < d);\n }\n function H(a, b, c, d, e, f) {\n var g = b,\n h = 1 << c,\n k,\n l,\n m = V(16),\n n = V(16);\n x(0 != e);\n x(null != d);\n x(null != a);\n x(0 < c);\n for (l = 0; l < e; ++l) {\n if (15 < d[l]) return 0;\n ++m[d[l]];\n }\n if (m[0] == e) return 0;\n n[1] = 0;\n for (k = 1; 15 > k; ++k) {\n if (m[k] > 1 << k) return 0;\n n[k + 1] = n[k] + m[k];\n }\n for (l = 0; l < e; ++l) (k = d[l]), 0 < d[l] && (f[n[k]++] = l);\n if (1 == n[15])\n return (d = new O()), (d.g = 0), (d.value = f[0]), J(a, g, 1, h, d), h;\n var r = -1,\n q = h - 1,\n t = 0,\n v = 1,\n p = 1,\n u,\n w = 1 << c;\n l = 0;\n k = 1;\n for (e = 2; k <= c; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k])\n (d = new O()),\n (d.g = k),\n (d.value = f[l++]),\n J(a, g + t, e, w, d),\n (t = L(t, k));\n }\n k = c + 1;\n for (e = 2; 15 >= k; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k]) {\n d = new O();\n if ((t & q) != r) {\n g += w;\n r = k;\n for (u = 1 << (r - c); 15 > r; ) {\n u -= m[r];\n if (0 >= u) break;\n ++r;\n u <<= 1;\n }\n u = r - c;\n w = 1 << u;\n h += w;\n r = t & q;\n a[b + r].g = u + c;\n a[b + r].value = g - b - r;\n }\n d.g = k - c;\n d.value = f[l++];\n J(a, g + (t >> c), e, w, d);\n t = L(t, k);\n }\n }\n return v != 2 * n[15] - 1 ? 0 : h;\n }\n function Z(a, b, c, d, e) {\n x(2328 >= e);\n if (512 >= e) var f = V(512);\n else if (((f = V(e)), null == f)) return 0;\n return H(a, b, c, d, e, f);\n }\n function O() {\n this.value = this.g = 0;\n }\n function Fd() {\n this.value = this.g = 0;\n }\n function Ub() {\n this.G = wa(5, O);\n this.H = V(5);\n this.jc = this.Qb = this.qb = this.nd = 0;\n this.pd = wa(xb, Fd);\n }\n function ma(a, b, c, d) {\n x(null != a);\n x(null != b);\n x(2147483648 > d);\n a.Ca = 254;\n a.I = 0;\n a.b = -8;\n a.Ka = 0;\n a.oa = b;\n a.pa = c;\n a.Jd = b;\n a.Yc = c + d;\n a.Zc = 4 <= d ? c + d - 4 + 1 : c;\n Qa(a);\n }\n function na(a, b) {\n for (var c = 0; 0 < b--; ) c |= K(a, 128) << b;\n return c;\n }\n function ca(a, b) {\n var c = na(a, b);\n return G(a) ? -c : c;\n }\n function cb(a, b, c, d) {\n var e,\n f = 0;\n x(null != a);\n x(null != b);\n x(4294967288 > d);\n a.Sb = d;\n a.Ra = 0;\n a.u = 0;\n a.h = 0;\n 4 < d && (d = 4);\n for (e = 0; e < d; ++e) f += b[c + e] << (8 * e);\n a.Ra = f;\n a.bb = d;\n a.oa = b;\n a.pa = c;\n }\n function Vb(a) {\n for (; 8 <= a.u && a.bb < a.Sb; )\n (a.Ra >>>= 8),\n (a.Ra += (a.oa[a.pa + a.bb] << (ob - 8)) >>> 0),\n ++a.bb,\n (a.u -= 8);\n db(a) && ((a.h = 1), (a.u = 0));\n }\n function D(a, b) {\n x(0 <= b);\n if (!a.h && b <= Gd) {\n var c = pb(a) & Hd[b];\n a.u += b;\n Vb(a);\n return c;\n }\n a.h = 1;\n return (a.u = 0);\n }\n function Wb() {\n this.b = this.Ca = this.I = 0;\n this.oa = [];\n this.pa = 0;\n this.Jd = [];\n this.Yc = 0;\n this.Zc = [];\n this.Ka = 0;\n }\n function Ra() {\n this.Ra = 0;\n this.oa = [];\n this.h = this.u = this.bb = this.Sb = this.pa = 0;\n }\n function pb(a) {\n return (a.Ra >>> (a.u & (ob - 1))) >>> 0;\n }\n function db(a) {\n x(a.bb <= a.Sb);\n return a.h || (a.bb == a.Sb && a.u > ob);\n }\n function qb(a, b) {\n a.u = b;\n a.h = db(a);\n }\n function Sa(a) {\n a.u >= Xb && (x(a.u >= Xb), Vb(a));\n }\n function Qa(a) {\n x(null != a && null != a.oa);\n a.pa < a.Zc\n ? ((a.I = (a.oa[a.pa++] | (a.I << 8)) >>> 0), (a.b += 8))\n : (x(null != a && null != a.oa),\n a.pa < a.Yc\n ? ((a.b += 8), (a.I = a.oa[a.pa++] | (a.I << 8)))\n : a.Ka\n ? (a.b = 0)\n : ((a.I <<= 8), (a.b += 8), (a.Ka = 1)));\n }\n function G(a) {\n return na(a, 1);\n }\n function K(a, b) {\n var c = a.Ca;\n 0 > a.b && Qa(a);\n var d = a.b,\n e = (c * b) >>> 8,\n f = (a.I >>> d > e) + 0;\n f ? ((c -= e), (a.I -= ((e + 1) << d) >>> 0)) : (c = e + 1);\n d = c;\n for (e = 0; 256 <= d; ) (e += 8), (d >>= 8);\n d = 7 ^ (e + Id[d]);\n a.b -= d;\n a.Ca = (c << d) - 1;\n return f;\n }\n function ra(a, b, c) {\n a[b + 0] = (c >> 24) & 255;\n a[b + 1] = (c >> 16) & 255;\n a[b + 2] = (c >> 8) & 255;\n a[b + 3] = (c >> 0) & 255;\n }\n function Ta(a, b) {\n return (a[b + 0] << 0) | (a[b + 1] << 8);\n }\n function Yb(a, b) {\n return Ta(a, b) | (a[b + 2] << 16);\n }\n function Ha(a, b) {\n return Ta(a, b) | (Ta(a, b + 2) << 16);\n }\n function Zb(a, b) {\n var c = 1 << b;\n x(null != a);\n x(0 < b);\n a.X = V(c);\n if (null == a.X) return 0;\n a.Mb = 32 - b;\n a.Xa = b;\n return 1;\n }\n function $b(a, b) {\n x(null != a);\n x(null != b);\n x(a.Xa == b.Xa);\n I(b.X, 0, a.X, 0, 1 << b.Xa);\n }\n function ac() {\n this.X = [];\n this.Xa = this.Mb = 0;\n }\n function bc(a, b, c, d) {\n x(null != c);\n x(null != d);\n var e = c[0],\n f = d[0];\n 0 == e && (e = (a * f + b / 2) / b);\n 0 == f && (f = (b * e + a / 2) / a);\n if (0 >= e || 0 >= f) return 0;\n c[0] = e;\n d[0] = f;\n return 1;\n }\n function xa(a, b) {\n return (a + (1 << b) - 1) >>> b;\n }\n function yb(a, b) {\n return (\n (((((a & 4278255360) + (b & 4278255360)) >>> 0) & 4278255360) +\n ((((a & 16711935) + (b & 16711935)) >>> 0) & 16711935)) >>>\n 0\n );\n }\n function X(a, b) {\n self[b] = function(b, d, e, f, g, h, k) {\n var c;\n for (c = 0; c < g; ++c) {\n var m = self[a](h[k + c - 1], e, f + c);\n h[k + c] = yb(b[d + c], m);\n }\n };\n }\n function Jd() {\n this.ud = this.hd = this.jd = 0;\n }\n function aa(a, b) {\n return ((((a ^ b) & 4278124286) >>> 1) + (a & b)) >>> 0;\n }\n function sa(a) {\n if (0 <= a && 256 > a) return a;\n if (0 > a) return 0;\n if (255 < a) return 255;\n }\n function eb(a, b) {\n return sa(a + ((a - b + 0.5) >> 1));\n }\n function Ia(a, b, c) {\n return Math.abs(b - c) - Math.abs(a - c);\n }\n function cc(a, b, c, d, e, f, g) {\n d = f[g - 1];\n for (c = 0; c < e; ++c) f[g + c] = d = yb(a[b + c], d);\n }\n function Kd(a, b, c, d, e) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + f],\n h = (g >> 8) & 255,\n k = g & 16711935,\n k = k + ((h << 16) + h),\n k = k & 16711935;\n d[e + f] = ((g & 4278255360) + k) >>> 0;\n }\n }\n function dc(a, b) {\n b.jd = (a >> 0) & 255;\n b.hd = (a >> 8) & 255;\n b.ud = (a >> 16) & 255;\n }\n function Ld(a, b, c, d, e, f) {\n var g;\n for (g = 0; g < d; ++g) {\n var h = b[c + g],\n k = h >>> 8,\n l = h >>> 16,\n m = h,\n l = l + ((((a.jd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n l = l & 255,\n m = m + ((((a.hd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n m = m + ((((a.ud << 24) >> 24) * ((l << 24) >> 24)) >>> 5),\n m = m & 255;\n e[f + g] = (h & 4278255360) + (l << 16) + m;\n }\n }\n function ec(a, b, c, d, e) {\n self[b] = function(a, b, c, k, l, m, n, r, q) {\n for (k = n; k < r; ++k)\n for (n = 0; n < q; ++n) l[m++] = e(c[d(a[b++])]);\n };\n self[a] = function(a, b, h, k, l, m, n) {\n var f = 8 >> a.b,\n g = a.Ea,\n t = a.K[0],\n v = a.w;\n if (8 > f)\n for (a = (1 << a.b) - 1, v = (1 << f) - 1; b < h; ++b) {\n var p = 0,\n u;\n for (u = 0; u < g; ++u)\n u & a || (p = d(k[l++])), (m[n++] = e(t[p & v])), (p >>= f);\n }\n else self[\"VP8LMapColor\" + c](k, l, t, v, m, n, b, h, g);\n };\n }\n function Md(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n }\n }\n function Nd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 24) & 255;\n }\n }\n function Od(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 240) | ((f >> 12) & 15),\n f = ((f >> 0) & 240) | ((f >> 28) & 15);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Pd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 248) | ((f >> 13) & 7),\n f = ((f >> 5) & 224) | ((f >> 3) & 31);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Qd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 16) & 255;\n }\n }\n function fb(a, b, c, d, e, f) {\n if (0 == f)\n for (c = b + c; b < c; )\n (f = a[b++]),\n ra(\n d,\n ((f[0] >> 24) |\n ((f[1] >> 8) & 65280) |\n ((f[2] << 8) & 16711680) |\n (f[3] << 24)) >>>\n 0\n ),\n (e += 32);\n else I(d, e, a, b, c);\n }\n function gb(a, b) {\n self[b][0] = self[a + \"0\"];\n self[b][1] = self[a + \"1\"];\n self[b][2] = self[a + \"2\"];\n self[b][3] = self[a + \"3\"];\n self[b][4] = self[a + \"4\"];\n self[b][5] = self[a + \"5\"];\n self[b][6] = self[a + \"6\"];\n self[b][7] = self[a + \"7\"];\n self[b][8] = self[a + \"8\"];\n self[b][9] = self[a + \"9\"];\n self[b][10] = self[a + \"10\"];\n self[b][11] = self[a + \"11\"];\n self[b][12] = self[a + \"12\"];\n self[b][13] = self[a + \"13\"];\n self[b][14] = self[a + \"0\"];\n self[b][15] = self[a + \"0\"];\n }\n function hb(a) {\n return a == zb || a == Ab || a == Ja || a == Bb;\n }\n function Rd() {\n this.eb = [];\n this.size = this.A = this.fb = 0;\n }\n function Sd() {\n this.y = [];\n this.f = [];\n this.ea = [];\n this.F = [];\n this.Tc = this.Ed = this.Cd = this.Fd = this.lb = this.Db = this.Ab = this.fa = this.J = this.W = this.N = this.O = 0;\n }\n function Cb() {\n this.Rd = this.height = this.width = this.S = 0;\n this.f = {};\n this.f.RGBA = new Rd();\n this.f.kb = new Sd();\n this.sd = null;\n }\n function Td() {\n this.width = [0];\n this.height = [0];\n this.Pd = [0];\n this.Qd = [0];\n this.format = [0];\n }\n function Ud() {\n this.Id = this.fd = this.Md = this.hb = this.ib = this.da = this.bd = this.cd = this.j = this.v = this.Da = this.Sd = this.ob = 0;\n }\n function Vd(a) {\n alert(\"todo:WebPSamplerProcessPlane\");\n return a.T;\n }\n function Wd(a, b) {\n var c = a.T,\n d = b.ba.f.RGBA,\n e = d.eb,\n f = d.fb + a.ka * d.A,\n g = P[b.ba.S],\n h = a.y,\n k = a.O,\n l = a.f,\n m = a.N,\n n = a.ea,\n r = a.W,\n q = b.cc,\n t = b.dc,\n v = b.Mc,\n p = b.Nc,\n u = a.ka,\n w = a.ka + a.T,\n y = a.U,\n A = (y + 1) >> 1;\n 0 == u\n ? g(h, k, null, null, l, m, n, r, l, m, n, r, e, f, null, null, y)\n : (g(b.ec, b.fc, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y),\n ++c);\n for (; u + 2 < w; u += 2)\n (q = l),\n (t = m),\n (v = n),\n (p = r),\n (m += a.Rc),\n (r += a.Rc),\n (f += 2 * d.A),\n (k += 2 * a.fa),\n g(h, k - a.fa, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y);\n k += a.fa;\n a.j + w < a.o\n ? (I(b.ec, b.fc, h, k, y),\n I(b.cc, b.dc, l, m, A),\n I(b.Mc, b.Nc, n, r, A),\n c--)\n : w & 1 ||\n g(\n h,\n k,\n null,\n null,\n l,\n m,\n n,\n r,\n l,\n m,\n n,\n r,\n e,\n f + d.A,\n null,\n null,\n y\n );\n return c;\n }\n function Xd(a, b, c) {\n var d = a.F,\n e = [a.J];\n if (null != d) {\n var f = a.U,\n g = b.ba.S,\n h = g == ya || g == Ja;\n b = b.ba.f.RGBA;\n var k = [0],\n l = a.ka;\n k[0] = a.T;\n a.Kb &&\n (0 == l ? --k[0] : (--l, (e[0] -= a.width)),\n a.j + a.ka + a.T == a.o && (k[0] = a.o - a.j - l));\n var m = b.eb,\n l = b.fb + l * b.A;\n a = fc(d, e[0], a.width, f, k, m, l + (h ? 0 : 3), b.A);\n x(c == k);\n a && hb(g) && za(m, l, h, f, k, b.A);\n }\n return 0;\n }\n function gc(a) {\n var b = a.ma,\n c = b.ba.S,\n d = 11 > c,\n e = c == Ua || c == Va || c == ya || c == Db || 12 == c || hb(c);\n b.memory = null;\n b.Ib = null;\n b.Jb = null;\n b.Nd = null;\n if (!hc(b.Oa, a, e ? 11 : 12)) return 0;\n e && hb(c) && ic();\n if (a.da) alert(\"todo:use_scaling\");\n else {\n if (d) {\n if (((b.Ib = Vd), a.Kb)) {\n c = (a.U + 1) >> 1;\n b.memory = V(a.U + 2 * c);\n if (null == b.memory) return 0;\n b.ec = b.memory;\n b.fc = 0;\n b.cc = b.ec;\n b.dc = b.fc + a.U;\n b.Mc = b.cc;\n b.Nc = b.dc + c;\n b.Ib = Wd;\n ic();\n }\n } else alert(\"todo:EmitYUV\");\n e && ((b.Jb = Xd), d && Aa());\n }\n if (d && !jc) {\n for (a = 0; 256 > a; ++a)\n (Yd[a] = (89858 * (a - 128) + Ba) >> Wa),\n (Zd[a] = -22014 * (a - 128) + Ba),\n ($d[a] = -45773 * (a - 128)),\n (ae[a] = (113618 * (a - 128) + Ba) >> Wa);\n for (a = ta; a < Eb; ++a)\n (b = (76283 * (a - 16) + Ba) >> Wa),\n (be[a - ta] = ga(b, 255)),\n (ce[a - ta] = ga((b + 8) >> 4, 15));\n jc = 1;\n }\n return 1;\n }\n function kc(a) {\n var b = a.ma,\n c = a.U,\n d = a.T;\n x(!(a.ka & 1));\n if (0 >= c || 0 >= d) return 0;\n c = b.Ib(a, b);\n null != b.Jb && b.Jb(a, b, c);\n b.Dc += c;\n return 1;\n }\n function lc(a) {\n a.ma.memory = null;\n }\n function mc(a, b, c, d) {\n if (47 != D(a, 8)) return 0;\n b[0] = D(a, 14) + 1;\n c[0] = D(a, 14) + 1;\n d[0] = D(a, 1);\n return 0 != D(a, 3) ? 0 : !a.h;\n }\n function ib(a, b) {\n if (4 > a) return a + 1;\n var c = (a - 2) >> 1;\n return ((2 + (a & 1)) << c) + D(b, c) + 1;\n }\n function nc(a, b) {\n if (120 < b) return b - 120;\n var c = de[b - 1],\n c = (c >> 4) * a + (8 - (c & 15));\n return 1 <= c ? c : 1;\n }\n function ua(a, b, c) {\n var d = pb(c);\n b += d & 255;\n var e = a[b].g - 8;\n 0 < e &&\n (qb(c, c.u + 8),\n (d = pb(c)),\n (b += a[b].value),\n (b += d & ((1 << e) - 1)));\n qb(c, c.u + a[b].g);\n return a[b].value;\n }\n function ub(a, b, c) {\n c.g += a.g;\n c.value += (a.value << b) >>> 0;\n x(8 >= c.g);\n return a.g;\n }\n function ha(a, b, c) {\n var d = a.xc;\n b = 0 == d ? 0 : a.vc[a.md * (c >> d) + (b >> d)];\n x(b < a.Wb);\n return a.Ya[b];\n }\n function oc(a, b, c, d) {\n var e = a.ab,\n f = a.c * b,\n g = a.C;\n b = g + b;\n var h = c,\n k = d;\n d = a.Ta;\n for (c = a.Ua; 0 < e--; ) {\n var l = a.gc[e],\n m = g,\n n = b,\n r = h,\n q = k,\n k = d,\n h = c,\n t = l.Ea;\n x(m < n);\n x(n <= l.nc);\n switch (l.hc) {\n case 2:\n pc(r, q, (n - m) * t, k, h);\n break;\n case 0:\n var v = l,\n p = m,\n u = n,\n w = k,\n y = h,\n A = v.Ea;\n 0 == p &&\n (ee(r, q, null, null, 1, w, y),\n cc(r, q + 1, 0, 0, A - 1, w, y + 1),\n (q += A),\n (y += A),\n ++p);\n for (\n var E = 1 << v.b,\n B = E - 1,\n C = xa(A, v.b),\n N = v.K,\n v = v.w + (p >> v.b) * C;\n p < u;\n\n ) {\n var z = N,\n Q = v,\n S = 1;\n for (fe(r, q, w, y - A, 1, w, y); S < A; ) {\n var K = qc[(z[Q++] >> 8) & 15],\n D = (S & ~B) + E;\n D > A && (D = A);\n K(r, q + +S, w, y + S - A, D - S, w, y + S);\n S = D;\n }\n q += A;\n y += A;\n ++p;\n p & B || (v += C);\n }\n n != l.nc && I(k, h - t, k, h + (n - m - 1) * t, t);\n break;\n case 1:\n t = r;\n u = q;\n r = l.Ea;\n q = 1 << l.b;\n w = q - 1;\n y = r & ~w;\n A = r - y;\n p = xa(r, l.b);\n E = l.K;\n for (l = l.w + (m >> l.b) * p; m < n; ) {\n B = E;\n C = l;\n N = new Jd();\n v = u + y;\n for (z = u + r; u < v; )\n dc(B[C++], N), Fb(N, t, u, q, k, h), (u += q), (h += q);\n u < z &&\n (dc(B[C++], N), Fb(N, t, u, A, k, h), (u += A), (h += A));\n ++m;\n m & w || (l += p);\n }\n break;\n case 3:\n if (r == k && q == h && 0 < l.b) {\n y = (n - m) * xa(l.Ea, l.b);\n t = h + (n - m) * t - y;\n u = k;\n r = t;\n q = k;\n w = h;\n A = y;\n p = [];\n for (y = A - 1; 0 <= y; --y) p[y] = q[w + y];\n for (y = A - 1; 0 <= y; --y) u[r + y] = p[y];\n rc(l, m, n, k, t, k, h);\n } else rc(l, m, n, r, q, k, h);\n }\n h = d;\n k = c;\n }\n k != c && I(d, c, h, k, f);\n }\n function ge(a, b) {\n var c = a.V,\n d = a.Ba + a.c * a.C,\n e = b - a.C;\n x(b <= a.l.o);\n x(16 >= e);\n if (0 < e) {\n var f = a.l,\n g = a.Ta,\n h = a.Ua,\n k = f.width;\n oc(a, e, c, d);\n h = [h];\n c = a.C;\n d = b;\n e = h;\n x(c < d);\n x(f.v < f.va);\n d > f.o && (d = f.o);\n if (c < f.j) {\n var l = f.j - c,\n c = f.j;\n e[0] += l * k;\n }\n c >= d\n ? (c = 0)\n : ((e[0] += 4 * f.v),\n (f.ka = c - f.j),\n (f.U = f.va - f.v),\n (f.T = d - c),\n (c = 1));\n if (c) {\n h = h[0];\n c = a.ca;\n if (11 > c.S) {\n for (\n var m = c.f.RGBA,\n d = c.S,\n e = f.U,\n f = f.T,\n l = m.eb,\n n = m.A,\n r = f,\n m = m.fb + a.Ma * m.A;\n 0 < r--;\n\n ) {\n var q = g,\n t = h,\n v = e,\n p = l,\n u = m;\n switch (d) {\n case Ca:\n sc(q, t, v, p, u);\n break;\n case Ua:\n Gb(q, t, v, p, u);\n break;\n case zb:\n Gb(q, t, v, p, u);\n za(p, u, 0, v, 1, 0);\n break;\n case tc:\n uc(q, t, v, p, u);\n break;\n case Va:\n fb(q, t, v, p, u, 1);\n break;\n case Ab:\n fb(q, t, v, p, u, 1);\n za(p, u, 0, v, 1, 0);\n break;\n case ya:\n fb(q, t, v, p, u, 0);\n break;\n case Ja:\n fb(q, t, v, p, u, 0);\n za(p, u, 1, v, 1, 0);\n break;\n case Db:\n Hb(q, t, v, p, u);\n break;\n case Bb:\n Hb(q, t, v, p, u);\n vc(p, u, v, 1, 0);\n break;\n case wc:\n xc(q, t, v, p, u);\n break;\n default:\n x(0);\n }\n h += k;\n m += n;\n }\n a.Ma += f;\n } else alert(\"todo:EmitRescaledRowsYUVA\");\n x(a.Ma <= c.height);\n }\n }\n a.C = b;\n x(a.C <= a.i);\n }\n function yc(a) {\n var b;\n if (0 < a.ua) return 0;\n for (b = 0; b < a.Wb; ++b) {\n var c = a.Ya[b].G,\n d = a.Ya[b].H;\n if (\n 0 < c[1][d[1] + 0].g ||\n 0 < c[2][d[2] + 0].g ||\n 0 < c[3][d[3] + 0].g\n )\n return 0;\n }\n return 1;\n }\n function zc(a, b, c, d, e, f) {\n if (0 != a.Z) {\n var g = a.qd,\n h = a.rd;\n for (x(null != ia[a.Z]); b < c; ++b)\n ia[a.Z](g, h, d, e, d, e, f), (g = d), (h = e), (e += f);\n a.qd = g;\n a.rd = h;\n }\n }\n function Ib(a, b) {\n var c = a.l.ma,\n d = 0 == c.Z || 1 == c.Z ? a.l.j : a.C,\n d = a.C < d ? d : a.C;\n x(b <= a.l.o);\n if (b > d) {\n var e = a.l.width,\n f = c.ca,\n g = c.tb + e * d,\n h = a.V,\n k = a.Ba + a.c * d,\n l = a.gc;\n x(1 == a.ab);\n x(3 == l[0].hc);\n he(l[0], d, b, h, k, f, g);\n zc(c, d, b, f, g, e);\n }\n a.C = a.Ma = b;\n }\n function Jb(a, b, c, d, e, f, g) {\n var h = a.$ / d,\n k = a.$ % d,\n l = a.m,\n m = a.s,\n n = c + a.$,\n r = n;\n e = c + d * e;\n var q = c + d * f,\n t = 280 + m.ua,\n v = a.Pb ? h : 16777216,\n p = 0 < m.ua ? m.Wa : null,\n u = m.wc,\n w = n < q ? ha(m, k, h) : null;\n x(a.C < f);\n x(q <= e);\n var y = !1;\n a: for (;;) {\n for (; y || n < q; ) {\n var A = 0;\n if (h >= v) {\n var v = a,\n E = n - c;\n x(v.Pb);\n v.wd = v.m;\n v.xd = E;\n 0 < v.s.ua && $b(v.s.Wa, v.s.vb);\n v = h + ie;\n }\n k & u || (w = ha(m, k, h));\n x(null != w);\n w.Qb && ((b[n] = w.qb), (y = !0));\n if (!y)\n if ((Sa(l), w.jc)) {\n var A = l,\n E = b,\n B = n,\n C = w.pd[pb(A) & (xb - 1)];\n x(w.jc);\n 256 > C.g\n ? (qb(A, A.u + C.g), (E[B] = C.value), (A = 0))\n : (qb(A, A.u + C.g - 256), x(256 <= C.value), (A = C.value));\n 0 == A && (y = !0);\n } else A = ua(w.G[0], w.H[0], l);\n if (l.h) break;\n if (y || 256 > A) {\n if (!y)\n if (w.nd) b[n] = (w.qb | (A << 8)) >>> 0;\n else {\n Sa(l);\n y = ua(w.G[1], w.H[1], l);\n Sa(l);\n E = ua(w.G[2], w.H[2], l);\n B = ua(w.G[3], w.H[3], l);\n if (l.h) break;\n b[n] = ((B << 24) | (y << 16) | (A << 8) | E) >>> 0;\n }\n y = !1;\n ++n;\n ++k;\n if (\n k >= d &&\n ((k = 0),\n ++h,\n null != g && h <= f && !(h % 16) && g(a, h),\n null != p)\n )\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (280 > A) {\n A = ib(A - 256, l);\n E = ua(w.G[4], w.H[4], l);\n Sa(l);\n E = ib(E, l);\n E = nc(d, E);\n if (l.h) break;\n if (n - c < E || e - n < A) break a;\n else for (B = 0; B < A; ++B) b[n + B] = b[n + B - E];\n n += A;\n for (k += A; k >= d; )\n (k -= d), ++h, null != g && h <= f && !(h % 16) && g(a, h);\n x(n <= e);\n k & u && (w = ha(m, k, h));\n if (null != p)\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (A < t) {\n y = A - 280;\n for (x(null != p); r < n; )\n (A = b[r++]), (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n A = n;\n E = p;\n x(!(y >>> E.Xa));\n b[A] = E.X[y];\n y = !0;\n } else break a;\n y || x(l.h == db(l));\n }\n if (a.Pb && l.h && n < e)\n x(a.m.h),\n (a.a = 5),\n (a.m = a.wd),\n (a.$ = a.xd),\n 0 < a.s.ua && $b(a.s.vb, a.s.Wa);\n else if (l.h) break a;\n else null != g && g(a, h > f ? f : h), (a.a = 0), (a.$ = n - c);\n return 1;\n }\n a.a = 3;\n return 0;\n }\n function Ac(a) {\n x(null != a);\n a.vc = null;\n a.yc = null;\n a.Ya = null;\n var b = a.Wa;\n null != b && (b.X = null);\n a.vb = null;\n x(null != a);\n }\n function Bc() {\n var a = new je();\n if (null == a) return null;\n a.a = 0;\n a.xb = Cc;\n gb(\"Predictor\", \"VP8LPredictors\");\n gb(\"Predictor\", \"VP8LPredictors_C\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd_C\");\n pc = Kd;\n Fb = Ld;\n sc = Md;\n Gb = Nd;\n Hb = Od;\n xc = Pd;\n uc = Qd;\n self.VP8LMapColor32b = ke;\n self.VP8LMapColor8b = le;\n return a;\n }\n function rb(a, b, c, d, e) {\n var f = 1,\n g = [a],\n h = [b],\n k = d.m,\n l = d.s,\n m = null,\n n = 0;\n a: for (;;) {\n if (c)\n for (; f && D(k, 1); ) {\n var r = g,\n q = h,\n t = d,\n v = 1,\n p = t.m,\n u = t.gc[t.ab],\n w = D(p, 2);\n if (t.Oc & (1 << w)) f = 0;\n else {\n t.Oc |= 1 << w;\n u.hc = w;\n u.Ea = r[0];\n u.nc = q[0];\n u.K = [null];\n ++t.ab;\n x(4 >= t.ab);\n switch (w) {\n case 0:\n case 1:\n u.b = D(p, 3) + 2;\n v = rb(xa(u.Ea, u.b), xa(u.nc, u.b), 0, t, u.K);\n u.K = u.K[0];\n break;\n case 3:\n var y = D(p, 8) + 1,\n A = 16 < y ? 0 : 4 < y ? 1 : 2 < y ? 2 : 3;\n r[0] = xa(u.Ea, A);\n u.b = A;\n var v = rb(y, 1, 0, t, u.K),\n E;\n if ((E = v)) {\n var B,\n C = y,\n N = u,\n z = 1 << (8 >> N.b),\n Q = V(z);\n if (null == Q) E = 0;\n else {\n var S = N.K[0],\n K = N.w;\n Q[0] = N.K[0][0];\n for (B = 1; B < 1 * C; ++B) Q[B] = yb(S[K + B], Q[B - 1]);\n for (; B < 4 * z; ++B) Q[B] = 0;\n N.K[0] = null;\n N.K[0] = Q;\n E = 1;\n }\n }\n v = E;\n break;\n case 2:\n break;\n default:\n x(0);\n }\n f = v;\n }\n }\n g = g[0];\n h = h[0];\n if (f && D(k, 1) && ((n = D(k, 4)), (f = 1 <= n && 11 >= n), !f)) {\n d.a = 3;\n break a;\n }\n var H;\n if ((H = f))\n b: {\n var F = d,\n G = g,\n L = h,\n J = n,\n T = c,\n Da,\n ba,\n X = F.m,\n R = F.s,\n P = [null],\n U,\n W = 1,\n aa = 0,\n na = me[J];\n c: for (;;) {\n if (T && D(X, 1)) {\n var ca = D(X, 3) + 2,\n ga = xa(G, ca),\n ka = xa(L, ca),\n qa = ga * ka;\n if (!rb(ga, ka, 0, F, P)) break c;\n P = P[0];\n R.xc = ca;\n for (Da = 0; Da < qa; ++Da) {\n var ia = (P[Da] >> 8) & 65535;\n P[Da] = ia;\n ia >= W && (W = ia + 1);\n }\n }\n if (X.h) break c;\n for (ba = 0; 5 > ba; ++ba) {\n var Y = Dc[ba];\n !ba && 0 < J && (Y += 1 << J);\n aa < Y && (aa = Y);\n }\n var ma = wa(W * na, O);\n var ua = W,\n va = wa(ua, Ub);\n if (null == va) var la = null;\n else x(65536 >= ua), (la = va);\n var ha = V(aa);\n if (null == la || null == ha || null == ma) {\n F.a = 1;\n break c;\n }\n var pa = ma;\n for (Da = U = 0; Da < W; ++Da) {\n var ja = la[Da],\n da = ja.G,\n ea = ja.H,\n Fa = 0,\n ra = 1,\n Ha = 0;\n for (ba = 0; 5 > ba; ++ba) {\n Y = Dc[ba];\n da[ba] = pa;\n ea[ba] = U;\n !ba && 0 < J && (Y += 1 << J);\n d: {\n var sa,\n za = Y,\n ta = F,\n oa = ha,\n db = pa,\n eb = U,\n Ia = 0,\n Ka = ta.m,\n fb = D(Ka, 1);\n M(oa, 0, 0, za);\n if (fb) {\n var gb = D(Ka, 1) + 1,\n hb = D(Ka, 1),\n Ja = D(Ka, 0 == hb ? 1 : 8);\n oa[Ja] = 1;\n 2 == gb && ((Ja = D(Ka, 8)), (oa[Ja] = 1));\n var ya = 1;\n } else {\n var Ua = V(19),\n Va = D(Ka, 4) + 4;\n if (19 < Va) {\n ta.a = 3;\n var Aa = 0;\n break d;\n }\n for (sa = 0; sa < Va; ++sa) Ua[ne[sa]] = D(Ka, 3);\n var Ba = void 0,\n sb = void 0,\n Wa = ta,\n ib = Ua,\n Ca = za,\n Xa = oa,\n Oa = 0,\n La = Wa.m,\n Ya = 8,\n Za = wa(128, O);\n e: for (;;) {\n if (!Z(Za, 0, 7, ib, 19)) break e;\n if (D(La, 1)) {\n var kb = 2 + 2 * D(La, 3),\n Ba = 2 + D(La, kb);\n if (Ba > Ca) break e;\n } else Ba = Ca;\n for (sb = 0; sb < Ca && Ba--; ) {\n Sa(La);\n var $a = Za[0 + (pb(La) & 127)];\n qb(La, La.u + $a.g);\n var jb = $a.value;\n if (16 > jb) (Xa[sb++] = jb), 0 != jb && (Ya = jb);\n else {\n var lb = 16 == jb,\n ab = jb - 16,\n mb = oe[ab],\n bb = D(La, pe[ab]) + mb;\n if (sb + bb > Ca) break e;\n else\n for (var nb = lb ? Ya : 0; 0 < bb--; )\n Xa[sb++] = nb;\n }\n }\n Oa = 1;\n break e;\n }\n Oa || (Wa.a = 3);\n ya = Oa;\n }\n (ya = ya && !Ka.h) && (Ia = Z(db, eb, 8, oa, za));\n ya && 0 != Ia ? (Aa = Ia) : ((ta.a = 3), (Aa = 0));\n }\n if (0 == Aa) break c;\n ra && 1 == qe[ba] && (ra = 0 == pa[U].g);\n Fa += pa[U].g;\n U += Aa;\n if (3 >= ba) {\n var Pa = ha[0],\n tb;\n for (tb = 1; tb < Y; ++tb) ha[tb] > Pa && (Pa = ha[tb]);\n Ha += Pa;\n }\n }\n ja.nd = ra;\n ja.Qb = 0;\n ra &&\n ((ja.qb =\n ((da[3][ea[3] + 0].value << 24) |\n (da[1][ea[1] + 0].value << 16) |\n da[2][ea[2] + 0].value) >>>\n 0),\n 0 == Fa &&\n 256 > da[0][ea[0] + 0].value &&\n ((ja.Qb = 1), (ja.qb += da[0][ea[0] + 0].value << 8)));\n ja.jc = !ja.Qb && 6 > Ha;\n if (ja.jc) {\n var Ga,\n Ea = ja;\n for (Ga = 0; Ga < xb; ++Ga) {\n var Ma = Ga,\n Na = Ea.pd[Ma],\n vb = Ea.G[0][Ea.H[0] + Ma];\n 256 <= vb.value\n ? ((Na.g = vb.g + 256), (Na.value = vb.value))\n : ((Na.g = 0),\n (Na.value = 0),\n (Ma >>= ub(vb, 8, Na)),\n (Ma >>= ub(Ea.G[1][Ea.H[1] + Ma], 16, Na)),\n (Ma >>= ub(Ea.G[2][Ea.H[2] + Ma], 0, Na)),\n ub(Ea.G[3][Ea.H[3] + Ma], 24, Na));\n }\n }\n }\n R.vc = P;\n R.Wb = W;\n R.Ya = la;\n R.yc = ma;\n H = 1;\n break b;\n }\n H = 0;\n }\n f = H;\n if (!f) {\n d.a = 3;\n break a;\n }\n if (0 < n) {\n if (((l.ua = 1 << n), !Zb(l.Wa, n))) {\n d.a = 1;\n f = 0;\n break a;\n }\n } else l.ua = 0;\n var Qa = d,\n cb = g,\n ob = h,\n Ra = Qa.s,\n Ta = Ra.xc;\n Qa.c = cb;\n Qa.i = ob;\n Ra.md = xa(cb, Ta);\n Ra.wc = 0 == Ta ? -1 : (1 << Ta) - 1;\n if (c) {\n d.xb = re;\n break a;\n }\n m = V(g * h);\n if (null == m) {\n d.a = 1;\n f = 0;\n break a;\n }\n f = (f = Jb(d, m, 0, g, h, h, null)) && !k.h;\n break a;\n }\n f\n ? (null != e ? (e[0] = m) : (x(null == m), x(c)), (d.$ = 0), c || Ac(l))\n : Ac(l);\n return f;\n }\n function Ec(a, b) {\n var c = a.c * a.i,\n d = c + b + 16 * b;\n x(a.c <= b);\n a.V = V(d);\n if (null == a.V) return (a.Ta = null), (a.Ua = 0), (a.a = 1), 0;\n a.Ta = a.V;\n a.Ua = a.Ba + c + b;\n return 1;\n }\n function se(a, b) {\n var c = a.C,\n d = b - c,\n e = a.V,\n f = a.Ba + a.c * c;\n for (x(b <= a.l.o); 0 < d; ) {\n var g = 16 < d ? 16 : d,\n h = a.l.ma,\n k = a.l.width,\n l = k * g,\n m = h.ca,\n n = h.tb + k * c,\n r = a.Ta,\n q = a.Ua;\n oc(a, g, e, f);\n Fc(r, q, m, n, l);\n zc(h, c, c + g, m, n, k);\n d -= g;\n e += g * a.c;\n c += g;\n }\n x(c == b);\n a.C = a.Ma = b;\n }\n function te(a, b) {\n var c = [0],\n d = [0],\n e = [0];\n a: for (;;) {\n if (null == a) return 0;\n if (null == b) return (a.a = 2), 0;\n a.l = b;\n a.a = 0;\n cb(a.m, b.data, b.w, b.ha);\n if (!mc(a.m, c, d, e)) {\n a.a = 3;\n break a;\n }\n a.xb = Cc;\n b.width = c[0];\n b.height = d[0];\n if (!rb(c[0], d[0], 1, a, null)) break a;\n return 1;\n }\n x(0 != a.a);\n return 0;\n }\n function ue() {\n this.ub = this.yd = this.td = this.Rb = 0;\n }\n function ve() {\n this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;\n }\n function we() {\n this.Fb = this.Bb = this.Cb = 0;\n this.Zb = V(4);\n this.Lb = V(4);\n }\n function Gc() {\n this.Yb = wb();\n }\n function xe() {\n this.jb = V(3);\n this.Wc = Ed([4, 8], Gc);\n this.Xc = Ed([4, 17], Gc);\n }\n function ye() {\n this.Pc = this.wb = this.Tb = this.zd = 0;\n this.vd = new V(4);\n this.od = new V(4);\n }\n function Xa() {\n this.ld = this.La = this.dd = this.tc = 0;\n }\n function Hc() {\n this.Na = this.la = 0;\n }\n function ze() {\n this.Sc = [0, 0];\n this.Eb = [0, 0];\n this.Qc = [0, 0];\n this.ia = this.lc = 0;\n }\n function Kb() {\n this.ad = V(384);\n this.Za = 0;\n this.Ob = V(16);\n this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;\n }\n function Ae() {\n this.uc = this.M = this.Nb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.ya = Array(new Kb());\n this.aa = 0;\n this.l = new Oa();\n }\n function Ic() {\n this.y = V(16);\n this.f = V(8);\n this.ea = V(8);\n }\n function Be() {\n this.cb = this.a = 0;\n this.sc = \"\";\n this.m = new Wb();\n this.Od = new ue();\n this.Kc = new ve();\n this.ed = new ye();\n this.Qa = new we();\n this.Ic = this.$c = this.Aa = 0;\n this.D = new Ae();\n this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0;\n this.Jc = wa(8, Wb);\n this.ia = 0;\n new F();\n this.pb = wa(4, ze);\n this.Pa = new xe();\n this.Bd = this.kc = 0;\n this.Ac = [];\n this.Bc = 0;\n this.zc = [0, 0, 0, 0];\n this.Gd = Array(new Ic());\n this.Hd = 0;\n this.rb = Array(new Hc());\n this.sb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.oc = [];\n this.pc = 0;\n this.sa = [];\n this.ta = 0;\n this.qa = [];\n this.ra = 0;\n this.Ha = [];\n this.B = this.R = this.Ia = 0;\n this.Ec = [];\n this.M = this.ja = this.Vb = this.Fc = 0;\n this.ya = Array(new Kb());\n this.L = this.aa = 0;\n this.gd = Ed([4, 2], Xa);\n this.ga = null;\n this.Fa = [];\n this.Cc = this.qc = this.P = 0;\n this.Gb = [];\n this.Uc = 0;\n this.mb = [];\n this.nb = 0;\n this.rc = [];\n this.Ga = this.Vc = 0;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function Oa() {\n this.T = this.U = this.ka = this.height = this.width = 0;\n this.y = [];\n this.f = [];\n this.ea = [];\n this.Rc = this.fa = this.W = this.N = this.O = 0;\n this.ma = \"void\";\n this.put = \"VP8IoPutHook\";\n this.ac = \"VP8IoSetupHook\";\n this.bc = \"VP8IoTeardownHook\";\n this.ha = this.Kb = 0;\n this.data = [];\n this.hb = this.ib = this.da = this.o = this.j = this.va = this.v = this.Da = this.ob = this.w = 0;\n this.F = [];\n this.J = 0;\n }\n function Ce() {\n var a = new Be();\n null != a &&\n ((a.a = 0), (a.sc = \"OK\"), (a.cb = 0), (a.Xb = 0), oa || (oa = De));\n return a;\n }\n function T(a, b, c) {\n 0 == a.a && ((a.a = b), (a.sc = c), (a.cb = 0));\n return 0;\n }\n function Jc(a, b, c) {\n return 3 <= c && 157 == a[b + 0] && 1 == a[b + 1] && 42 == a[b + 2];\n }\n function Kc(a, b) {\n if (null == a) return 0;\n a.a = 0;\n a.sc = \"OK\";\n if (null == b) return T(a, 2, \"null VP8Io passed to VP8GetHeaders()\");\n var c = b.data;\n var d = b.w;\n var e = b.ha;\n if (4 > e) return T(a, 7, \"Truncated header.\");\n var f = c[d + 0] | (c[d + 1] << 8) | (c[d + 2] << 16);\n var g = a.Od;\n g.Rb = !(f & 1);\n g.td = (f >> 1) & 7;\n g.yd = (f >> 4) & 1;\n g.ub = f >> 5;\n if (3 < g.td) return T(a, 3, \"Incorrect keyframe parameters.\");\n if (!g.yd) return T(a, 4, \"Frame not displayable.\");\n d += 3;\n e -= 3;\n var h = a.Kc;\n if (g.Rb) {\n if (7 > e) return T(a, 7, \"cannot parse picture header\");\n if (!Jc(c, d, e)) return T(a, 3, \"Bad code word\");\n h.c = ((c[d + 4] << 8) | c[d + 3]) & 16383;\n h.Td = c[d + 4] >> 6;\n h.i = ((c[d + 6] << 8) | c[d + 5]) & 16383;\n h.Ud = c[d + 6] >> 6;\n d += 7;\n e -= 7;\n a.za = (h.c + 15) >> 4;\n a.Ub = (h.i + 15) >> 4;\n b.width = h.c;\n b.height = h.i;\n b.Da = 0;\n b.j = 0;\n b.v = 0;\n b.va = b.width;\n b.o = b.height;\n b.da = 0;\n b.ib = b.width;\n b.hb = b.height;\n b.U = b.width;\n b.T = b.height;\n f = a.Pa;\n M(f.jb, 0, 255, f.jb.length);\n f = a.Qa;\n x(null != f);\n f.Cb = 0;\n f.Bb = 0;\n f.Fb = 1;\n M(f.Zb, 0, 0, f.Zb.length);\n M(f.Lb, 0, 0, f.Lb);\n }\n if (g.ub > e) return T(a, 7, \"bad partition length\");\n f = a.m;\n ma(f, c, d, g.ub);\n d += g.ub;\n e -= g.ub;\n g.Rb && ((h.Ld = G(f)), (h.Kd = G(f)));\n h = a.Qa;\n var k = a.Pa,\n l;\n x(null != f);\n x(null != h);\n h.Cb = G(f);\n if (h.Cb) {\n h.Bb = G(f);\n if (G(f)) {\n h.Fb = G(f);\n for (l = 0; 4 > l; ++l) h.Zb[l] = G(f) ? ca(f, 7) : 0;\n for (l = 0; 4 > l; ++l) h.Lb[l] = G(f) ? ca(f, 6) : 0;\n }\n if (h.Bb) for (l = 0; 3 > l; ++l) k.jb[l] = G(f) ? na(f, 8) : 255;\n } else h.Bb = 0;\n if (f.Ka) return T(a, 3, \"cannot parse segment header\");\n h = a.ed;\n h.zd = G(f);\n h.Tb = na(f, 6);\n h.wb = na(f, 3);\n h.Pc = G(f);\n if (h.Pc && G(f)) {\n for (k = 0; 4 > k; ++k) G(f) && (h.vd[k] = ca(f, 6));\n for (k = 0; 4 > k; ++k) G(f) && (h.od[k] = ca(f, 6));\n }\n a.L = 0 == h.Tb ? 0 : h.zd ? 1 : 2;\n if (f.Ka) return T(a, 3, \"cannot parse filter header\");\n l = d;\n var m = e;\n e = l;\n d = l + m;\n h = m;\n a.Xb = (1 << na(a.m, 2)) - 1;\n k = a.Xb;\n if (m < 3 * k) c = 7;\n else {\n l += 3 * k;\n h -= 3 * k;\n for (m = 0; m < k; ++m) {\n var n = c[e + 0] | (c[e + 1] << 8) | (c[e + 2] << 16);\n n > h && (n = h);\n ma(a.Jc[+m], c, l, n);\n l += n;\n h -= n;\n e += 3;\n }\n ma(a.Jc[+k], c, l, h);\n c = l < d ? 0 : 5;\n }\n if (0 != c) return T(a, c, \"cannot parse partitions\");\n l = a.m;\n c = na(l, 7);\n e = G(l) ? ca(l, 4) : 0;\n d = G(l) ? ca(l, 4) : 0;\n h = G(l) ? ca(l, 4) : 0;\n k = G(l) ? ca(l, 4) : 0;\n l = G(l) ? ca(l, 4) : 0;\n m = a.Qa;\n for (n = 0; 4 > n; ++n) {\n if (m.Cb) {\n var r = m.Zb[n];\n m.Fb || (r += c);\n } else if (0 < n) {\n a.pb[n] = a.pb[0];\n continue;\n } else r = c;\n var q = a.pb[n];\n q.Sc[0] = Lb[ga(r + e, 127)];\n q.Sc[1] = Mb[ga(r + 0, 127)];\n q.Eb[0] = 2 * Lb[ga(r + d, 127)];\n q.Eb[1] = (101581 * Mb[ga(r + h, 127)]) >> 16;\n 8 > q.Eb[1] && (q.Eb[1] = 8);\n q.Qc[0] = Lb[ga(r + k, 117)];\n q.Qc[1] = Mb[ga(r + l, 127)];\n q.lc = r + l;\n }\n if (!g.Rb) return T(a, 4, \"Not a key frame.\");\n G(f);\n g = a.Pa;\n for (c = 0; 4 > c; ++c) {\n for (e = 0; 8 > e; ++e)\n for (d = 0; 3 > d; ++d)\n for (h = 0; 11 > h; ++h)\n (k = K(f, Ee[c][e][d][h]) ? na(f, 8) : Fe[c][e][d][h]),\n (g.Wc[c][e].Yb[d][h] = k);\n for (e = 0; 17 > e; ++e) g.Xc[c][e] = g.Wc[c][Ge[e]];\n }\n a.kc = G(f);\n a.kc && (a.Bd = na(f, 8));\n return (a.cb = 1);\n }\n function De(a, b, c, d, e, f, g) {\n var h = b[e].Yb[c];\n for (c = 0; 16 > e; ++e) {\n if (!K(a, h[c + 0])) return e;\n for (; !K(a, h[c + 1]); )\n if (((h = b[++e].Yb[0]), (c = 0), 16 == e)) return 16;\n var k = b[e + 1].Yb;\n if (K(a, h[c + 2])) {\n var l = a,\n m = h,\n n = c;\n var r = 0;\n if (K(l, m[n + 3]))\n if (K(l, m[n + 6])) {\n h = 0;\n r = K(l, m[n + 8]);\n m = K(l, m[n + 9 + r]);\n n = 2 * r + m;\n r = 0;\n for (m = He[n]; m[h]; ++h) r += r + K(l, m[h]);\n r += 3 + (8 << n);\n } else\n K(l, m[n + 7])\n ? ((r = 7 + 2 * K(l, 165)), (r += K(l, 145)))\n : (r = 5 + K(l, 159));\n else K(l, m[n + 4]) ? (r = 3 + K(l, m[n + 5])) : (r = 2);\n h = k[2];\n } else (r = 1), (h = k[1]);\n k = g + Ie[e];\n l = a;\n 0 > l.b && Qa(l);\n var m = l.b,\n n = l.Ca >> 1,\n q = (n - (l.I >> m)) >> 31;\n --l.b;\n l.Ca += q;\n l.Ca |= 1;\n l.I -= ((n + 1) & q) << m;\n f[k] = ((r ^ q) - q) * d[(0 < e) + 0];\n }\n return 16;\n }\n function Lc(a) {\n var b = a.rb[a.sb - 1];\n b.la = 0;\n b.Na = 0;\n M(a.zc, 0, 0, a.zc.length);\n a.ja = 0;\n }\n function Je(a, b) {\n for (a.M = 0; a.M < a.Va; ++a.M) {\n var c = a.Jc[a.M & a.Xb],\n d = a.m,\n e = a,\n f;\n for (f = 0; f < e.za; ++f) {\n var g = d;\n var h = e;\n var k = h.Ac,\n l = h.Bc + 4 * f,\n m = h.zc,\n n = h.ya[h.aa + f];\n h.Qa.Bb\n ? (n.$b = K(g, h.Pa.jb[0])\n ? 2 + K(g, h.Pa.jb[2])\n : K(g, h.Pa.jb[1]))\n : (n.$b = 0);\n h.kc && (n.Ad = K(g, h.Bd));\n n.Za = !K(g, 145) + 0;\n if (n.Za) {\n var r = n.Ob,\n q = 0;\n for (h = 0; 4 > h; ++h) {\n var t = m[0 + h];\n var v;\n for (v = 0; 4 > v; ++v) {\n t = Ke[k[l + v]][t];\n for (var p = Mc[K(g, t[0])]; 0 < p; )\n p = Mc[2 * p + K(g, t[p])];\n t = -p;\n k[l + v] = t;\n }\n I(r, q, k, l, 4);\n q += 4;\n m[0 + h] = t;\n }\n } else\n (t = K(g, 156) ? (K(g, 128) ? 1 : 3) : K(g, 163) ? 2 : 0),\n (n.Ob[0] = t),\n M(k, l, t, 4),\n M(m, 0, t, 4);\n n.Dd = K(g, 142) ? (K(g, 114) ? (K(g, 183) ? 1 : 3) : 2) : 0;\n }\n if (e.m.Ka) return T(a, 7, \"Premature end-of-partition0 encountered.\");\n for (; a.ja < a.za; ++a.ja) {\n d = a;\n e = c;\n g = d.rb[d.sb - 1];\n k = d.rb[d.sb + d.ja];\n f = d.ya[d.aa + d.ja];\n if ((l = d.kc ? f.Ad : 0))\n (g.la = k.la = 0),\n f.Za || (g.Na = k.Na = 0),\n (f.Hc = 0),\n (f.Gc = 0),\n (f.ia = 0);\n else {\n var u,\n w,\n g = k,\n k = e,\n l = d.Pa.Xc,\n m = d.ya[d.aa + d.ja],\n n = d.pb[m.$b];\n h = m.ad;\n r = 0;\n q = d.rb[d.sb - 1];\n t = v = 0;\n M(h, r, 0, 384);\n if (m.Za) {\n var y = 0;\n var A = l[3];\n } else {\n p = V(16);\n var E = g.Na + q.Na;\n E = oa(k, l[1], E, n.Eb, 0, p, 0);\n g.Na = q.Na = (0 < E) + 0;\n if (1 < E) Nc(p, 0, h, r);\n else {\n var B = (p[0] + 3) >> 3;\n for (p = 0; 256 > p; p += 16) h[r + p] = B;\n }\n y = 1;\n A = l[0];\n }\n var C = g.la & 15;\n var N = q.la & 15;\n for (p = 0; 4 > p; ++p) {\n var z = N & 1;\n for (B = w = 0; 4 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, A, E, n.Sc, y, h, r)),\n (z = E > y),\n (C = (C >> 1) | (z << 7)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 4;\n N = (N >> 1) | (z << 7);\n v = ((v << 8) | w) >>> 0;\n }\n A = C;\n y = N >> 4;\n for (u = 0; 4 > u; u += 2) {\n w = 0;\n C = g.la >> (4 + u);\n N = q.la >> (4 + u);\n for (p = 0; 2 > p; ++p) {\n z = N & 1;\n for (B = 0; 2 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, l[2], E, n.Qc, 0, h, r)),\n (z = 0 < E),\n (C = (C >> 1) | (z << 3)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 2;\n N = (N >> 1) | (z << 5);\n }\n t |= w << (4 * u);\n A |= (C << 4) << u;\n y |= (N & 240) << u;\n }\n g.la = A;\n q.la = y;\n m.Hc = v;\n m.Gc = t;\n m.ia = t & 43690 ? 0 : n.ia;\n l = !(v | t);\n }\n 0 < d.L &&\n ((d.wa[d.Y + d.ja] = d.gd[f.$b][f.Za]),\n (d.wa[d.Y + d.ja].La |= !l));\n if (e.Ka) return T(a, 7, \"Premature end-of-file encountered.\");\n }\n Lc(a);\n c = a;\n d = b;\n e = 1;\n f = c.D;\n g = 0 < c.L && c.M >= c.zb && c.M <= c.Va;\n if (0 == c.Aa)\n a: {\n (f.M = c.M), (f.uc = g), Oc(c, f), (e = 1);\n w = c.D;\n f = w.Nb;\n t = Ya[c.L];\n g = t * c.R;\n k = (t / 2) * c.B;\n p = 16 * f * c.R;\n B = 8 * f * c.B;\n l = c.sa;\n m = c.ta - g + p;\n n = c.qa;\n h = c.ra - k + B;\n r = c.Ha;\n q = c.Ia - k + B;\n C = w.M;\n N = 0 == C;\n v = C >= c.Va - 1;\n 2 == c.Aa && Oc(c, w);\n if (w.uc)\n for (E = c, z = E.D.M, x(E.D.uc), w = E.yb; w < E.Hb; ++w) {\n var Q = E;\n y = w;\n A = z;\n var S = Q.D,\n D = S.Nb;\n u = Q.R;\n var S = S.wa[S.Y + y],\n F = Q.sa,\n H = Q.ta + 16 * D * u + 16 * y,\n J = S.dd,\n G = S.tc;\n if (0 != G)\n if ((x(3 <= G), 1 == Q.L))\n 0 < y && Pc(F, H, u, G + 4),\n S.La && Qc(F, H, u, G),\n 0 < A && Rc(F, H, u, G + 4),\n S.La && Sc(F, H, u, G);\n else {\n var L = Q.B,\n O = Q.qa,\n P = Q.ra + 8 * D * L + 8 * y,\n R = Q.Ha,\n Q = Q.Ia + 8 * D * L + 8 * y,\n D = S.ld;\n 0 < y &&\n (Tc(F, H, u, G + 4, J, D),\n Uc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Vc(F, H, u, G, J, D), Wc(O, P, R, Q, L, G, J, D));\n 0 < A &&\n (Xc(F, H, u, G + 4, J, D),\n Yc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Zc(F, H, u, G, J, D), $c(O, P, R, Q, L, G, J, D));\n }\n }\n c.ia && alert(\"todo:DitherRow\");\n if (null != d.put) {\n w = 16 * C;\n C = 16 * (C + 1);\n N\n ? ((d.y = c.sa),\n (d.O = c.ta + p),\n (d.f = c.qa),\n (d.N = c.ra + B),\n (d.ea = c.Ha),\n (d.W = c.Ia + B))\n : ((w -= t),\n (d.y = l),\n (d.O = m),\n (d.f = n),\n (d.N = h),\n (d.ea = r),\n (d.W = q));\n v || (C -= t);\n C > d.o && (C = d.o);\n d.F = null;\n d.J = null;\n if (\n null != c.Fa &&\n 0 < c.Fa.length &&\n w < C &&\n ((d.J = Le(c, d, w, C - w)),\n (d.F = c.mb),\n null == d.F && 0 == d.F.length)\n ) {\n e = T(c, 3, \"Could not decode alpha data.\");\n break a;\n }\n w < d.j &&\n ((t = d.j - w),\n (w = d.j),\n x(!(t & 1)),\n (d.O += c.R * t),\n (d.N += c.B * (t >> 1)),\n (d.W += c.B * (t >> 1)),\n null != d.F && (d.J += d.width * t));\n w < C &&\n ((d.O += d.v),\n (d.N += d.v >> 1),\n (d.W += d.v >> 1),\n null != d.F && (d.J += d.v),\n (d.ka = w - d.j),\n (d.U = d.va - d.v),\n (d.T = C - w),\n (e = d.put(d)));\n }\n f + 1 != c.Ic ||\n v ||\n (I(c.sa, c.ta - g, l, m + 16 * c.R, g),\n I(c.qa, c.ra - k, n, h + 8 * c.B, k),\n I(c.Ha, c.Ia - k, r, q + 8 * c.B, k));\n }\n if (!e) return T(a, 6, \"Output aborted.\");\n }\n return 1;\n }\n function Me(a, b) {\n if (null == a) return 0;\n if (null == b) return T(a, 2, \"NULL VP8Io parameter in VP8Decode().\");\n if (!a.cb && !Kc(a, b)) return 0;\n x(a.cb);\n if (null == b.ac || b.ac(b)) {\n b.ob && (a.L = 0);\n var c = Ya[a.L];\n 2 == a.L\n ? ((a.yb = 0), (a.zb = 0))\n : ((a.yb = (b.v - c) >> 4),\n (a.zb = (b.j - c) >> 4),\n 0 > a.yb && (a.yb = 0),\n 0 > a.zb && (a.zb = 0));\n a.Va = (b.o + 15 + c) >> 4;\n a.Hb = (b.va + 15 + c) >> 4;\n a.Hb > a.za && (a.Hb = a.za);\n a.Va > a.Ub && (a.Va = a.Ub);\n if (0 < a.L) {\n var d = a.ed;\n for (c = 0; 4 > c; ++c) {\n var e;\n if (a.Qa.Cb) {\n var f = a.Qa.Lb[c];\n a.Qa.Fb || (f += d.Tb);\n } else f = d.Tb;\n for (e = 0; 1 >= e; ++e) {\n var g = a.gd[c][e],\n h = f;\n d.Pc && ((h += d.vd[0]), e && (h += d.od[0]));\n h = 0 > h ? 0 : 63 < h ? 63 : h;\n if (0 < h) {\n var k = h;\n 0 < d.wb &&\n ((k = 4 < d.wb ? k >> 2 : k >> 1),\n k > 9 - d.wb && (k = 9 - d.wb));\n 1 > k && (k = 1);\n g.dd = k;\n g.tc = 2 * h + k;\n g.ld = 40 <= h ? 2 : 15 <= h ? 1 : 0;\n } else g.tc = 0;\n g.La = e;\n }\n }\n }\n c = 0;\n } else T(a, 6, \"Frame setup failed\"), (c = a.a);\n if ((c = 0 == c)) {\n if (c) {\n a.$c = 0;\n 0 < a.Aa || (a.Ic = Ne);\n b: {\n c = a.Ic;\n var k = a.za,\n d = 4 * k,\n l = 32 * k,\n m = k + 1,\n n = 0 < a.L ? k * (0 < a.Aa ? 2 : 1) : 0,\n r = (2 == a.Aa ? 2 : 1) * k;\n e = ((3 * (16 * c + Ya[a.L])) / 2) * l;\n f = null != a.Fa && 0 < a.Fa.length ? a.Kc.c * a.Kc.i : 0;\n g = d + 832 + e + f;\n if (g != g) c = 0;\n else {\n if (g > a.Vb) {\n a.Vb = 0;\n a.Ec = V(g);\n a.Fc = 0;\n if (null == a.Ec) {\n c = T(a, 1, \"no memory during frame initialization.\");\n break b;\n }\n a.Vb = g;\n }\n g = a.Ec;\n h = a.Fc;\n a.Ac = g;\n a.Bc = h;\n h += d;\n a.Gd = wa(l, Ic);\n a.Hd = 0;\n a.rb = wa(m + 1, Hc);\n a.sb = 1;\n a.wa = n ? wa(n, Xa) : null;\n a.Y = 0;\n a.D.Nb = 0;\n a.D.wa = a.wa;\n a.D.Y = a.Y;\n 0 < a.Aa && (a.D.Y += k);\n x(!0);\n a.oc = g;\n a.pc = h;\n h += 832;\n a.ya = wa(r, Kb);\n a.aa = 0;\n a.D.ya = a.ya;\n a.D.aa = a.aa;\n 2 == a.Aa && (a.D.aa += k);\n a.R = 16 * k;\n a.B = 8 * k;\n l = Ya[a.L];\n k = l * a.R;\n l = (l / 2) * a.B;\n a.sa = g;\n a.ta = h + k;\n a.qa = a.sa;\n a.ra = a.ta + 16 * c * a.R + l;\n a.Ha = a.qa;\n a.Ia = a.ra + 8 * c * a.B + l;\n a.$c = 0;\n h += e;\n a.mb = f ? g : null;\n a.nb = f ? h : null;\n x(h + f <= a.Fc + a.Vb);\n Lc(a);\n M(a.Ac, a.Bc, 0, d);\n c = 1;\n }\n }\n if (c) {\n b.ka = 0;\n b.y = a.sa;\n b.O = a.ta;\n b.f = a.qa;\n b.N = a.ra;\n b.ea = a.Ha;\n b.Vd = a.Ia;\n b.fa = a.R;\n b.Rc = a.B;\n b.F = null;\n b.J = 0;\n if (!ad) {\n for (c = -255; 255 >= c; ++c) bd[255 + c] = 0 > c ? -c : c;\n for (c = -1020; 1020 >= c; ++c)\n cd[1020 + c] = -128 > c ? -128 : 127 < c ? 127 : c;\n for (c = -112; 112 >= c; ++c)\n dd[112 + c] = -16 > c ? -16 : 15 < c ? 15 : c;\n for (c = -255; 510 >= c; ++c)\n ed[255 + c] = 0 > c ? 0 : 255 < c ? 255 : c;\n ad = 1;\n }\n Nc = Oe;\n Za = Pe;\n Nb = Qe;\n pa = Re;\n Ob = Se;\n fd = Te;\n Xc = Ue;\n Tc = Ve;\n Yc = We;\n Uc = Xe;\n Zc = Ye;\n Vc = Ze;\n $c = $e;\n Wc = af;\n Rc = gd;\n Pc = hd;\n Sc = bf;\n Qc = cf;\n W[0] = df;\n W[1] = ef;\n W[2] = ff;\n W[3] = gf;\n W[4] = hf;\n W[5] = jf;\n W[6] = kf;\n W[7] = lf;\n W[8] = mf;\n W[9] = nf;\n Y[0] = of;\n Y[1] = pf;\n Y[2] = qf;\n Y[3] = rf;\n Y[4] = sf;\n Y[5] = tf;\n Y[6] = uf;\n ka[0] = vf;\n ka[1] = wf;\n ka[2] = xf;\n ka[3] = yf;\n ka[4] = zf;\n ka[5] = Af;\n ka[6] = Bf;\n c = 1;\n } else c = 0;\n }\n c && (c = Je(a, b));\n null != b.bc && b.bc(b);\n c &= 1;\n }\n if (!c) return 0;\n a.cb = 0;\n return c;\n }\n function qa(a, b, c, d, e) {\n e = a[b + c + 32 * d] + (e >> 3);\n a[b + c + 32 * d] = e & -256 ? (0 > e ? 0 : 255) : e;\n }\n function kb(a, b, c, d, e, f) {\n qa(a, b, 0, c, d + e);\n qa(a, b, 1, c, d + f);\n qa(a, b, 2, c, d - f);\n qa(a, b, 3, c, d - e);\n }\n function da(a) {\n return ((20091 * a) >> 16) + a;\n }\n function id(a, b, c, d) {\n var e = 0,\n f;\n var g = V(16);\n for (f = 0; 4 > f; ++f) {\n var h = a[b + 0] + a[b + 8];\n var k = a[b + 0] - a[b + 8];\n var l = ((35468 * a[b + 4]) >> 16) - da(a[b + 12]);\n var m = da(a[b + 4]) + ((35468 * a[b + 12]) >> 16);\n g[e + 0] = h + m;\n g[e + 1] = k + l;\n g[e + 2] = k - l;\n g[e + 3] = h - m;\n e += 4;\n b++;\n }\n for (f = e = 0; 4 > f; ++f)\n (a = g[e + 0] + 4),\n (h = a + g[e + 8]),\n (k = a - g[e + 8]),\n (l = ((35468 * g[e + 4]) >> 16) - da(g[e + 12])),\n (m = da(g[e + 4]) + ((35468 * g[e + 12]) >> 16)),\n qa(c, d, 0, 0, h + m),\n qa(c, d, 1, 0, k + l),\n qa(c, d, 2, 0, k - l),\n qa(c, d, 3, 0, h - m),\n e++,\n (d += 32);\n }\n function Te(a, b, c, d) {\n var e = a[b + 0] + 4,\n f = (35468 * a[b + 4]) >> 16,\n g = da(a[b + 4]),\n h = (35468 * a[b + 1]) >> 16;\n a = da(a[b + 1]);\n kb(c, d, 0, e + g, a, h);\n kb(c, d, 1, e + f, a, h);\n kb(c, d, 2, e - f, a, h);\n kb(c, d, 3, e - g, a, h);\n }\n function Pe(a, b, c, d, e) {\n id(a, b, c, d);\n e && id(a, b + 16, c, d + 4);\n }\n function Qe(a, b, c, d) {\n Za(a, b + 0, c, d, 1);\n Za(a, b + 32, c, d + 128, 1);\n }\n function Re(a, b, c, d) {\n a = a[b + 0] + 4;\n var e;\n for (e = 0; 4 > e; ++e) for (b = 0; 4 > b; ++b) qa(c, d, b, e, a);\n }\n function Se(a, b, c, d) {\n a[b + 0] && pa(a, b + 0, c, d);\n a[b + 16] && pa(a, b + 16, c, d + 4);\n a[b + 32] && pa(a, b + 32, c, d + 128);\n a[b + 48] && pa(a, b + 48, c, d + 128 + 4);\n }\n function Oe(a, b, c, d) {\n var e = V(16),\n f;\n for (f = 0; 4 > f; ++f) {\n var g = a[b + 0 + f] + a[b + 12 + f];\n var h = a[b + 4 + f] + a[b + 8 + f];\n var k = a[b + 4 + f] - a[b + 8 + f];\n var l = a[b + 0 + f] - a[b + 12 + f];\n e[0 + f] = g + h;\n e[8 + f] = g - h;\n e[4 + f] = l + k;\n e[12 + f] = l - k;\n }\n for (f = 0; 4 > f; ++f)\n (a = e[0 + 4 * f] + 3),\n (g = a + e[3 + 4 * f]),\n (h = e[1 + 4 * f] + e[2 + 4 * f]),\n (k = e[1 + 4 * f] - e[2 + 4 * f]),\n (l = a - e[3 + 4 * f]),\n (c[d + 0] = (g + h) >> 3),\n (c[d + 16] = (l + k) >> 3),\n (c[d + 32] = (g - h) >> 3),\n (c[d + 48] = (l - k) >> 3),\n (d += 64);\n }\n function Pb(a, b, c) {\n var d = b - 32,\n e = R,\n f = 255 - a[d - 1],\n g;\n for (g = 0; g < c; ++g) {\n var h = e,\n k = f + a[b - 1],\n l;\n for (l = 0; l < c; ++l) a[b + l] = h[k + a[d + l]];\n b += 32;\n }\n }\n function ef(a, b) {\n Pb(a, b, 4);\n }\n function wf(a, b) {\n Pb(a, b, 8);\n }\n function pf(a, b) {\n Pb(a, b, 16);\n }\n function qf(a, b) {\n var c;\n for (c = 0; 16 > c; ++c) I(a, b + 32 * c, a, b - 32, 16);\n }\n function rf(a, b) {\n var c;\n for (c = 16; 0 < c; --c) M(a, b, a[b - 1], 16), (b += 32);\n }\n function $a(a, b, c) {\n var d;\n for (d = 0; 16 > d; ++d) M(b, c + 32 * d, a, 16);\n }\n function of(a, b) {\n var c = 16,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d] + a[b + d - 32];\n $a(c >> 5, a, b);\n }\n function sf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d];\n $a(c >> 4, a, b);\n }\n function tf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b + d - 32];\n $a(c >> 4, a, b);\n }\n function uf(a, b) {\n $a(128, a, b);\n }\n function z(a, b, c) {\n return (a + 2 * b + c + 2) >> 2;\n }\n function ff(a, b) {\n var c = b - 32,\n c = new Uint8Array([\n z(a[c - 1], a[c + 0], a[c + 1]),\n z(a[c + 0], a[c + 1], a[c + 2]),\n z(a[c + 1], a[c + 2], a[c + 3]),\n z(a[c + 2], a[c + 3], a[c + 4])\n ]),\n d;\n for (d = 0; 4 > d; ++d) I(a, b + 32 * d, c, 0, c.length);\n }\n function gf(a, b) {\n var c = a[b - 1],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n ra(a, b + 0, 16843009 * z(a[b - 1 - 32], c, d));\n ra(a, b + 32, 16843009 * z(c, d, e));\n ra(a, b + 64, 16843009 * z(d, e, f));\n ra(a, b + 96, 16843009 * z(e, f, f));\n }\n function df(a, b) {\n var c = 4,\n d;\n for (d = 0; 4 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n c >>= 3;\n for (d = 0; 4 > d; ++d) M(a, b + 32 * d, c, 4);\n }\n function hf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 96] = z(d, e, a[b - 1 + 96]);\n a[b + 1 + 96] = a[b + 0 + 64] = z(c, d, e);\n a[b + 2 + 96] = a[b + 1 + 64] = a[b + 0 + 32] = z(f, c, d);\n a[b + 3 + 96] = a[b + 2 + 64] = a[b + 1 + 32] = a[b + 0 + 0] = z(g, f, c);\n a[b + 3 + 64] = a[b + 2 + 32] = a[b + 1 + 0] = z(h, g, f);\n a[b + 3 + 32] = a[b + 2 + 0] = z(k, h, g);\n a[b + 3 + 0] = z(l, k, h);\n }\n function kf(a, b) {\n var c = a[b + 1 - 32],\n d = a[b + 2 - 32],\n e = a[b + 3 - 32],\n f = a[b + 4 - 32],\n g = a[b + 5 - 32],\n h = a[b + 6 - 32],\n k = a[b + 7 - 32];\n a[b + 0 + 0] = z(a[b + 0 - 32], c, d);\n a[b + 1 + 0] = a[b + 0 + 32] = z(c, d, e);\n a[b + 2 + 0] = a[b + 1 + 32] = a[b + 0 + 64] = z(d, e, f);\n a[b + 3 + 0] = a[b + 2 + 32] = a[b + 1 + 64] = a[b + 0 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 64] = a[b + 1 + 96] = z(f, g, h);\n a[b + 3 + 64] = a[b + 2 + 96] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, k);\n }\n function jf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 0] = a[b + 1 + 64] = (f + g + 1) >> 1;\n a[b + 1 + 0] = a[b + 2 + 64] = (g + h + 1) >> 1;\n a[b + 2 + 0] = a[b + 3 + 64] = (h + k + 1) >> 1;\n a[b + 3 + 0] = (k + l + 1) >> 1;\n a[b + 0 + 96] = z(e, d, c);\n a[b + 0 + 64] = z(d, c, f);\n a[b + 0 + 32] = a[b + 1 + 96] = z(c, f, g);\n a[b + 1 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 2 + 32] = a[b + 3 + 96] = z(g, h, k);\n a[b + 3 + 32] = z(h, k, l);\n }\n function lf(a, b) {\n var c = a[b + 0 - 32],\n d = a[b + 1 - 32],\n e = a[b + 2 - 32],\n f = a[b + 3 - 32],\n g = a[b + 4 - 32],\n h = a[b + 5 - 32],\n k = a[b + 6 - 32],\n l = a[b + 7 - 32];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 1 + 0] = a[b + 0 + 64] = (d + e + 1) >> 1;\n a[b + 2 + 0] = a[b + 1 + 64] = (e + f + 1) >> 1;\n a[b + 3 + 0] = a[b + 2 + 64] = (f + g + 1) >> 1;\n a[b + 0 + 32] = z(c, d, e);\n a[b + 1 + 32] = a[b + 0 + 96] = z(d, e, f);\n a[b + 2 + 32] = a[b + 1 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 3 + 64] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, l);\n }\n function nf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 2 + 0] = a[b + 0 + 32] = (d + e + 1) >> 1;\n a[b + 2 + 32] = a[b + 0 + 64] = (e + f + 1) >> 1;\n a[b + 1 + 0] = z(c, d, e);\n a[b + 3 + 0] = a[b + 1 + 32] = z(d, e, f);\n a[b + 3 + 32] = a[b + 1 + 64] = z(e, f, f);\n a[b + 3 + 64] = a[b + 2 + 64] = a[b + 0 + 96] = a[b + 1 + 96] = a[\n b + 2 + 96\n ] = a[b + 3 + 96] = f;\n }\n function mf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96],\n g = a[b - 1 - 32],\n h = a[b + 0 - 32],\n k = a[b + 1 - 32],\n l = a[b + 2 - 32];\n a[b + 0 + 0] = a[b + 2 + 32] = (c + g + 1) >> 1;\n a[b + 0 + 32] = a[b + 2 + 64] = (d + c + 1) >> 1;\n a[b + 0 + 64] = a[b + 2 + 96] = (e + d + 1) >> 1;\n a[b + 0 + 96] = (f + e + 1) >> 1;\n a[b + 3 + 0] = z(h, k, l);\n a[b + 2 + 0] = z(g, h, k);\n a[b + 1 + 0] = a[b + 3 + 32] = z(c, g, h);\n a[b + 1 + 32] = a[b + 3 + 64] = z(d, c, g);\n a[b + 1 + 64] = a[b + 3 + 96] = z(e, d, c);\n a[b + 1 + 96] = z(f, e, d);\n }\n function xf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) I(a, b + 32 * c, a, b - 32, 8);\n }\n function yf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) M(a, b, a[b - 1], 8), (b += 32);\n }\n function lb(a, b, c) {\n var d;\n for (d = 0; 8 > d; ++d) M(b, c + 32 * d, a, 8);\n }\n function vf(a, b) {\n var c = 8,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n lb(c >> 4, a, b);\n }\n function Af(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32];\n lb(c >> 3, a, b);\n }\n function zf(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b - 1 + 32 * d];\n lb(c >> 3, a, b);\n }\n function Bf(a, b) {\n lb(128, a, b);\n }\n function ab(a, b, c) {\n var d = a[b - c],\n e = a[b + 0],\n f = 3 * (e - d) + Qb[1020 + a[b - 2 * c] - a[b + c]],\n g = mb[112 + ((f + 4) >> 3)];\n a[b - c] = R[255 + d + mb[112 + ((f + 3) >> 3)]];\n a[b + 0] = R[255 + e - g];\n }\n function jd(a, b, c, d) {\n var e = a[b + 0],\n f = a[b + c];\n return U[255 + a[b - 2 * c] - a[b - c]] > d || U[255 + f - e] > d;\n }\n function kd(a, b, c, d) {\n return (\n 4 * U[255 + a[b - c] - a[b + 0]] + U[255 + a[b - 2 * c] - a[b + c]] <= d\n );\n }\n function ld(a, b, c, d, e) {\n var f = a[b - 3 * c],\n g = a[b - 2 * c],\n h = a[b - c],\n k = a[b + 0],\n l = a[b + c],\n m = a[b + 2 * c],\n n = a[b + 3 * c];\n return 4 * U[255 + h - k] + U[255 + g - l] > d\n ? 0\n : U[255 + a[b - 4 * c] - f] <= e &&\n U[255 + f - g] <= e &&\n U[255 + g - h] <= e &&\n U[255 + n - m] <= e &&\n U[255 + m - l] <= e &&\n U[255 + l - k] <= e;\n }\n function gd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d, c, e) && ab(a, b + d, c);\n }\n function hd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d * c, 1, e) && ab(a, b + d * c, 1);\n }\n function bf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4 * c), gd(a, b, c, d);\n }\n function cf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4), hd(a, b, c, d);\n }\n function ea(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - 2 * m],\n r = k[l - m],\n q = k[l + 0],\n t = k[l + m],\n v = k[l + 2 * m],\n p = Qb[1020 + 3 * (q - r) + Qb[1020 + n - t]],\n u = (27 * p + 63) >> 7,\n w = (18 * p + 63) >> 7,\n p = (9 * p + 63) >> 7;\n k[l - 3 * m] = R[255 + k[l - 3 * m] + p];\n k[l - 2 * m] = R[255 + n + w];\n k[l - m] = R[255 + r + u];\n k[l + 0] = R[255 + q - u];\n k[l + m] = R[255 + t - w];\n k[l + 2 * m] = R[255 + v - p];\n }\n b += d;\n }\n }\n function Fa(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - m],\n r = k[l + 0],\n q = k[l + m],\n t = 3 * (r - n),\n v = mb[112 + ((t + 4) >> 3)],\n t = mb[112 + ((t + 3) >> 3)],\n p = (v + 1) >> 1;\n k[l - 2 * m] = R[255 + k[l - 2 * m] + p];\n k[l - m] = R[255 + n + t];\n k[l + 0] = R[255 + r - v];\n k[l + m] = R[255 + q - p];\n }\n b += d;\n }\n }\n function Ue(a, b, c, d, e, f) {\n ea(a, b, c, 1, 16, d, e, f);\n }\n function Ve(a, b, c, d, e, f) {\n ea(a, b, 1, c, 16, d, e, f);\n }\n function Ye(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4 * c), Fa(a, b, c, 1, 16, d, e, f);\n }\n function Ze(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4), Fa(a, b, 1, c, 16, d, e, f);\n }\n function We(a, b, c, d, e, f, g, h) {\n ea(a, b, e, 1, 8, f, g, h);\n ea(c, d, e, 1, 8, f, g, h);\n }\n function Xe(a, b, c, d, e, f, g, h) {\n ea(a, b, 1, e, 8, f, g, h);\n ea(c, d, 1, e, 8, f, g, h);\n }\n function $e(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4 * e, e, 1, 8, f, g, h);\n Fa(c, d + 4 * e, e, 1, 8, f, g, h);\n }\n function af(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4, 1, e, 8, f, g, h);\n Fa(c, d + 4, 1, e, 8, f, g, h);\n }\n function Cf() {\n this.ba = new Cb();\n this.ec = [];\n this.cc = [];\n this.Mc = [];\n this.Dc = this.Nc = this.dc = this.fc = 0;\n this.Oa = new Ud();\n this.memory = 0;\n this.Ib = \"OutputFunc\";\n this.Jb = \"OutputAlphaFunc\";\n this.Nd = \"OutputRowFunc\";\n }\n function md() {\n this.data = [];\n this.offset = this.kd = this.ha = this.w = 0;\n this.na = [];\n this.xa = this.gb = this.Ja = this.Sa = this.P = 0;\n }\n function Df() {\n this.nc = this.Ea = this.b = this.hc = 0;\n this.K = [];\n this.w = 0;\n }\n function Ef() {\n this.ua = 0;\n this.Wa = new ac();\n this.vb = new ac();\n this.md = this.xc = this.wc = 0;\n this.vc = [];\n this.Wb = 0;\n this.Ya = new Ub();\n this.yc = new O();\n }\n function je() {\n this.xb = this.a = 0;\n this.l = new Oa();\n this.ca = new Cb();\n this.V = [];\n this.Ba = 0;\n this.Ta = [];\n this.Ua = 0;\n this.m = new Ra();\n this.Pb = 0;\n this.wd = new Ra();\n this.Ma = this.$ = this.C = this.i = this.c = this.xd = 0;\n this.s = new Ef();\n this.ab = 0;\n this.gc = wa(4, Df);\n this.Oc = 0;\n }\n function Ff() {\n this.Lc = this.Z = this.$a = this.i = this.c = 0;\n this.l = new Oa();\n this.ic = 0;\n this.ca = [];\n this.tb = 0;\n this.qd = null;\n this.rd = 0;\n }\n function Rb(a, b, c, d, e, f, g) {\n a = null == a ? 0 : a[b + 0];\n for (b = 0; b < g; ++b) (e[f + b] = (a + c[d + b]) & 255), (a = e[f + b]);\n }\n function Gf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h;\n for (h = 0; h < g; ++h) e[f + h] = (a[b + h] + c[d + h]) & 255;\n }\n }\n function Hf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h = a[b + 0],\n k = h,\n l = h,\n m;\n for (m = 0; m < g; ++m)\n (h = a[b + m]),\n (k = l + h - k),\n (l = (c[d + m] + (k & -256 ? (0 > k ? 0 : 255) : k)) & 255),\n (k = h),\n (e[f + m] = l);\n }\n }\n function Le(a, b, c, d) {\n var e = b.width,\n f = b.o;\n x(null != a && null != b);\n if (0 > c || 0 >= d || c + d > f) return null;\n if (!a.Cc) {\n if (null == a.ga) {\n a.ga = new Ff();\n var g;\n (g = null == a.ga) ||\n ((g = b.width * b.o),\n x(0 == a.Gb.length),\n (a.Gb = V(g)),\n (a.Uc = 0),\n null == a.Gb\n ? (g = 0)\n : ((a.mb = a.Gb), (a.nb = a.Uc), (a.rc = null), (g = 1)),\n (g = !g));\n if (!g) {\n g = a.ga;\n var h = a.Fa,\n k = a.P,\n l = a.qc,\n m = a.mb,\n n = a.nb,\n r = k + 1,\n q = l - 1,\n t = g.l;\n x(null != h && null != m && null != b);\n ia[0] = null;\n ia[1] = Rb;\n ia[2] = Gf;\n ia[3] = Hf;\n g.ca = m;\n g.tb = n;\n g.c = b.width;\n g.i = b.height;\n x(0 < g.c && 0 < g.i);\n if (1 >= l) b = 0;\n else if (\n ((g.$a = (h[k + 0] >> 0) & 3),\n (g.Z = (h[k + 0] >> 2) & 3),\n (g.Lc = (h[k + 0] >> 4) & 3),\n (k = (h[k + 0] >> 6) & 3),\n 0 > g.$a || 1 < g.$a || 4 <= g.Z || 1 < g.Lc || k)\n )\n b = 0;\n else if (\n ((t.put = kc),\n (t.ac = gc),\n (t.bc = lc),\n (t.ma = g),\n (t.width = b.width),\n (t.height = b.height),\n (t.Da = b.Da),\n (t.v = b.v),\n (t.va = b.va),\n (t.j = b.j),\n (t.o = b.o),\n g.$a)\n )\n b: {\n x(1 == g.$a), (b = Bc());\n c: for (;;) {\n if (null == b) {\n b = 0;\n break b;\n }\n x(null != g);\n g.mc = b;\n b.c = g.c;\n b.i = g.i;\n b.l = g.l;\n b.l.ma = g;\n b.l.width = g.c;\n b.l.height = g.i;\n b.a = 0;\n cb(b.m, h, r, q);\n if (!rb(g.c, g.i, 1, b, null)) break c;\n 1 == b.ab && 3 == b.gc[0].hc && yc(b.s)\n ? ((g.ic = 1),\n (h = b.c * b.i),\n (b.Ta = null),\n (b.Ua = 0),\n (b.V = V(h)),\n (b.Ba = 0),\n null == b.V ? ((b.a = 1), (b = 0)) : (b = 1))\n : ((g.ic = 0), (b = Ec(b, g.c)));\n if (!b) break c;\n b = 1;\n break b;\n }\n g.mc = null;\n b = 0;\n }\n else b = q >= g.c * g.i;\n g = !b;\n }\n if (g) return null;\n 1 != a.ga.Lc ? (a.Ga = 0) : (d = f - c);\n }\n x(null != a.ga);\n x(c + d <= f);\n a: {\n h = a.ga;\n b = h.c;\n f = h.l.o;\n if (0 == h.$a) {\n r = a.rc;\n q = a.Vc;\n t = a.Fa;\n k = a.P + 1 + c * b;\n l = a.mb;\n m = a.nb + c * b;\n x(k <= a.P + a.qc);\n if (0 != h.Z)\n for (x(null != ia[h.Z]), g = 0; g < d; ++g)\n ia[h.Z](r, q, t, k, l, m, b),\n (r = l),\n (q = m),\n (m += b),\n (k += b);\n else\n for (g = 0; g < d; ++g)\n I(l, m, t, k, b), (r = l), (q = m), (m += b), (k += b);\n a.rc = r;\n a.Vc = q;\n } else {\n x(null != h.mc);\n b = c + d;\n g = h.mc;\n x(null != g);\n x(b <= g.i);\n if (g.C >= b) b = 1;\n else if ((h.ic || Aa(), h.ic)) {\n var h = g.V,\n r = g.Ba,\n q = g.c,\n v = g.i,\n t = 1,\n k = g.$ / q,\n l = g.$ % q,\n m = g.m,\n n = g.s,\n p = g.$,\n u = q * v,\n w = q * b,\n y = n.wc,\n A = p < w ? ha(n, l, k) : null;\n x(p <= u);\n x(b <= v);\n x(yc(n));\n c: for (;;) {\n for (; !m.h && p < w; ) {\n l & y || (A = ha(n, l, k));\n x(null != A);\n Sa(m);\n v = ua(A.G[0], A.H[0], m);\n if (256 > v)\n (h[r + p] = v),\n ++p,\n ++l,\n l >= q && ((l = 0), ++k, k <= b && !(k % 16) && Ib(g, k));\n else if (280 > v) {\n var v = ib(v - 256, m);\n var E = ua(A.G[4], A.H[4], m);\n Sa(m);\n E = ib(E, m);\n E = nc(q, E);\n if (p >= E && u - p >= v) {\n var B;\n for (B = 0; B < v; ++B) h[r + p + B] = h[r + p + B - E];\n } else {\n t = 0;\n break c;\n }\n p += v;\n for (l += v; l >= q; )\n (l -= q), ++k, k <= b && !(k % 16) && Ib(g, k);\n p < w && l & y && (A = ha(n, l, k));\n } else {\n t = 0;\n break c;\n }\n x(m.h == db(m));\n }\n Ib(g, k > b ? b : k);\n break c;\n }\n !t || (m.h && p < u) ? ((t = 0), (g.a = m.h ? 5 : 3)) : (g.$ = p);\n b = t;\n } else b = Jb(g, g.V, g.Ba, g.c, g.i, b, se);\n if (!b) {\n d = 0;\n break a;\n }\n }\n c + d >= f && (a.Cc = 1);\n d = 1;\n }\n if (!d) return null;\n if (\n a.Cc &&\n ((d = a.ga), null != d && (d.mc = null), (a.ga = null), 0 < a.Ga)\n )\n return alert(\"todo:WebPDequantizeLevels\"), null;\n }\n return a.nb + c * e;\n }\n function If(a, b, c, d, e, f) {\n for (; 0 < e--; ) {\n var g = a,\n h = b + (c ? 1 : 0),\n k = a,\n l = b + (c ? 0 : 3),\n m;\n for (m = 0; m < d; ++m) {\n var n = k[l + 4 * m];\n 255 != n &&\n ((n *= 32897),\n (g[h + 4 * m + 0] = (g[h + 4 * m + 0] * n) >> 23),\n (g[h + 4 * m + 1] = (g[h + 4 * m + 1] * n) >> 23),\n (g[h + 4 * m + 2] = (g[h + 4 * m + 2] * n) >> 23));\n }\n b += f;\n }\n }\n function Jf(a, b, c, d, e) {\n for (; 0 < d--; ) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + 2 * f + 0],\n h = a[b + 2 * f + 1],\n k = h & 15,\n l = 4369 * k,\n h = (((h & 240) | (h >> 4)) * l) >> 16;\n a[b + 2 * f + 0] =\n (((((g & 240) | (g >> 4)) * l) >> 16) & 240) |\n ((((((g & 15) | (g << 4)) * l) >> 16) >> 4) & 15);\n a[b + 2 * f + 1] = (h & 240) | k;\n }\n b += e;\n }\n }\n function Kf(a, b, c, d, e, f, g, h) {\n var k = 255,\n l,\n m;\n for (m = 0; m < e; ++m) {\n for (l = 0; l < d; ++l) {\n var n = a[b + l];\n f[g + 4 * l] = n;\n k &= n;\n }\n b += c;\n g += h;\n }\n return 255 != k;\n }\n function Lf(a, b, c, d, e) {\n var f;\n for (f = 0; f < e; ++f) c[d + f] = a[b + f] >> 8;\n }\n function Aa() {\n za = If;\n vc = Jf;\n fc = Kf;\n Fc = Lf;\n }\n function va(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n, r, q, t, v, p, u, w, y) {\n var d,\n E = (y - 1) >> 1;\n var B = h[k + 0] | (l[m + 0] << 16);\n var C = n[r + 0] | (q[t + 0] << 16);\n x(null != a);\n var z = (3 * B + C + 131074) >> 2;\n b(a[e + 0], z & 255, z >> 16, v, p);\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + 0], z & 255, z >> 16, u, w));\n for (d = 1; d <= E; ++d) {\n var D = h[k + d] | (l[m + d] << 16);\n var G = n[r + d] | (q[t + d] << 16);\n var F = B + D + C + G + 524296;\n var H = (F + 2 * (D + C)) >> 3;\n F = (F + 2 * (B + G)) >> 3;\n z = (H + B) >> 1;\n B = (F + D) >> 1;\n b(a[e + 2 * d - 1], z & 255, z >> 16, v, p + (2 * d - 1) * c);\n b(a[e + 2 * d - 0], B & 255, B >> 16, v, p + (2 * d - 0) * c);\n null != f &&\n ((z = (F + C) >> 1),\n (B = (H + G) >> 1),\n b(f[g + 2 * d - 1], z & 255, z >> 16, u, w + (2 * d - 1) * c),\n b(f[g + 2 * d + 0], B & 255, B >> 16, u, w + (2 * d + 0) * c));\n B = D;\n C = G;\n }\n y & 1 ||\n ((z = (3 * B + C + 131074) >> 2),\n b(a[e + y - 1], z & 255, z >> 16, v, p + (y - 1) * c),\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + y - 1], z & 255, z >> 16, u, w + (y - 1) * c)));\n };\n }\n function ic() {\n P[Ca] = Mf;\n P[Ua] = nd;\n P[tc] = Nf;\n P[Va] = od;\n P[ya] = pd;\n P[Db] = qd;\n P[wc] = Of;\n P[zb] = nd;\n P[Ab] = od;\n P[Ja] = pd;\n P[Bb] = qd;\n }\n function Sb(a) {\n return a & ~Pf ? (0 > a ? 0 : 255) : a >> rd;\n }\n function bb(a, b) {\n return Sb(((19077 * a) >> 8) + ((26149 * b) >> 8) - 14234);\n }\n function nb(a, b, c) {\n return Sb(\n ((19077 * a) >> 8) - ((6419 * b) >> 8) - ((13320 * c) >> 8) + 8708\n );\n }\n function Pa(a, b) {\n return Sb(((19077 * a) >> 8) + ((33050 * b) >> 8) - 17685);\n }\n function Ga(a, b, c, d, e) {\n d[e + 0] = bb(a, c);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = Pa(a, b);\n }\n function Tb(a, b, c, d, e) {\n d[e + 0] = Pa(a, b);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = bb(a, c);\n }\n function sd(a, b, c, d, e) {\n var f = nb(a, b, c);\n b = ((f << 3) & 224) | (Pa(a, b) >> 3);\n d[e + 0] = (bb(a, c) & 248) | (f >> 5);\n d[e + 1] = b;\n }\n function td(a, b, c, d, e) {\n var f = (Pa(a, b) & 240) | 15;\n d[e + 0] = (bb(a, c) & 240) | (nb(a, b, c) >> 4);\n d[e + 1] = f;\n }\n function ud(a, b, c, d, e) {\n d[e + 0] = 255;\n Ga(a, b, c, d, e + 1);\n }\n function vd(a, b, c, d, e) {\n Tb(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function wd(a, b, c, d, e) {\n Ga(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function la(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n) {\n for (var d = m + (n & -2) * c; m != d; )\n b(a[e + 0], f[g + 0], h[k + 0], l, m),\n b(a[e + 1], f[g + 0], h[k + 0], l, m + c),\n (e += 2),\n ++g,\n ++k,\n (m += 2 * c);\n n & 1 && b(a[e + 0], f[g + 0], h[k + 0], l, m);\n };\n }\n function xd(a, b, c) {\n return 0 == c ? (0 == a ? (0 == b ? 6 : 5) : 0 == b ? 4 : 0) : c;\n }\n function yd(a, b, c, d, e) {\n switch (a >>> 30) {\n case 3:\n Za(b, c, d, e, 0);\n break;\n case 2:\n fd(b, c, d, e);\n break;\n case 1:\n pa(b, c, d, e);\n }\n }\n function Oc(a, b) {\n var c,\n d,\n e = b.M,\n f = b.Nb,\n g = a.oc,\n h = a.pc + 40,\n k = a.oc,\n l = a.pc + 584,\n m = a.oc,\n n = a.pc + 600;\n for (c = 0; 16 > c; ++c) g[h + 32 * c - 1] = 129;\n for (c = 0; 8 > c; ++c)\n (k[l + 32 * c - 1] = 129), (m[n + 32 * c - 1] = 129);\n 0 < e\n ? (g[h - 1 - 32] = k[l - 1 - 32] = m[n - 1 - 32] = 129)\n : (M(g, h - 32 - 1, 127, 21),\n M(k, l - 32 - 1, 127, 9),\n M(m, n - 32 - 1, 127, 9));\n for (d = 0; d < a.za; ++d) {\n var r = b.ya[b.aa + d];\n if (0 < d) {\n for (c = -1; 16 > c; ++c) I(g, h + 32 * c - 4, g, h + 32 * c + 12, 4);\n for (c = -1; 8 > c; ++c)\n I(k, l + 32 * c - 4, k, l + 32 * c + 4, 4),\n I(m, n + 32 * c - 4, m, n + 32 * c + 4, 4);\n }\n var q = a.Gd,\n t = a.Hd + d,\n v = r.ad,\n p = r.Hc;\n 0 < e &&\n (I(g, h - 32, q[t].y, 0, 16),\n I(k, l - 32, q[t].f, 0, 8),\n I(m, n - 32, q[t].ea, 0, 8));\n if (r.Za) {\n var u = g;\n var w = h - 32 + 16;\n 0 < e &&\n (d >= a.za - 1\n ? M(u, w, q[t].y[15], 4)\n : I(u, w, q[t + 1].y, 0, 4));\n for (c = 0; 4 > c; c++)\n u[w + 128 + c] = u[w + 256 + c] = u[w + 384 + c] = u[w + 0 + c];\n for (c = 0; 16 > c; ++c, p <<= 2)\n (u = g), (w = h + zd[c]), W[r.Ob[c]](u, w), yd(p, v, 16 * +c, u, w);\n } else if (((u = xd(d, e, r.Ob[0])), Y[u](g, h), 0 != p))\n for (c = 0; 16 > c; ++c, p <<= 2) yd(p, v, 16 * +c, g, h + zd[c]);\n c = r.Gc;\n u = xd(d, e, r.Dd);\n ka[u](k, l);\n ka[u](m, n);\n r = c >> 0;\n p = v;\n u = k;\n w = l;\n r & 255 && (r & 170 ? Nb(p, 256, u, w) : Ob(p, 256, u, w));\n c >>= 8;\n r = m;\n p = n;\n c & 255 && (c & 170 ? Nb(v, 320, r, p) : Ob(v, 320, r, p));\n e < a.Ub - 1 &&\n (I(q[t].y, 0, g, h + 480, 16),\n I(q[t].f, 0, k, l + 224, 8),\n I(q[t].ea, 0, m, n + 224, 8));\n c = 8 * f * a.B;\n q = a.sa;\n t = a.ta + 16 * d + 16 * f * a.R;\n v = a.qa;\n r = a.ra + 8 * d + c;\n p = a.Ha;\n u = a.Ia + 8 * d + c;\n for (c = 0; 16 > c; ++c) I(q, t + c * a.R, g, h + 32 * c, 16);\n for (c = 0; 8 > c; ++c)\n I(v, r + c * a.B, k, l + 32 * c, 8),\n I(p, u + c * a.B, m, n + 32 * c, 8);\n }\n }\n function Ad(a, b, c, d, e, f, g, h, k) {\n var l = [0],\n m = [0],\n n = 0,\n r = null != k ? k.kd : 0,\n q = null != k ? k : new md();\n if (null == a || 12 > c) return 7;\n q.data = a;\n q.w = b;\n q.ha = c;\n b = [b];\n c = [c];\n q.gb = [q.gb];\n a: {\n var t = b;\n var v = c;\n var p = q.gb;\n x(null != a);\n x(null != v);\n x(null != p);\n p[0] = 0;\n if (12 <= v[0] && !fa(a, t[0], \"RIFF\")) {\n if (fa(a, t[0] + 8, \"WEBP\")) {\n p = 3;\n break a;\n }\n var u = Ha(a, t[0] + 4);\n if (12 > u || 4294967286 < u) {\n p = 3;\n break a;\n }\n if (r && u > v[0] - 8) {\n p = 7;\n break a;\n }\n p[0] = u;\n t[0] += 12;\n v[0] -= 12;\n }\n p = 0;\n }\n if (0 != p) return p;\n u = 0 < q.gb[0];\n for (c = c[0]; ; ) {\n t = [0];\n n = [n];\n a: {\n var w = a;\n v = b;\n p = c;\n var y = n,\n A = l,\n z = m,\n B = t;\n y[0] = 0;\n if (8 > p[0]) p = 7;\n else {\n if (!fa(w, v[0], \"VP8X\")) {\n if (10 != Ha(w, v[0] + 4)) {\n p = 3;\n break a;\n }\n if (18 > p[0]) {\n p = 7;\n break a;\n }\n var C = Ha(w, v[0] + 8);\n var D = 1 + Yb(w, v[0] + 12);\n w = 1 + Yb(w, v[0] + 15);\n if (2147483648 <= D * w) {\n p = 3;\n break a;\n }\n null != B && (B[0] = C);\n null != A && (A[0] = D);\n null != z && (z[0] = w);\n v[0] += 18;\n p[0] -= 18;\n y[0] = 1;\n }\n p = 0;\n }\n }\n n = n[0];\n t = t[0];\n if (0 != p) return p;\n v = !!(t & 2);\n if (!u && n) return 3;\n null != f && (f[0] = !!(t & 16));\n null != g && (g[0] = v);\n null != h && (h[0] = 0);\n g = l[0];\n t = m[0];\n if (n && v && null == k) {\n p = 0;\n break;\n }\n if (4 > c) {\n p = 7;\n break;\n }\n if ((u && n) || (!u && !n && !fa(a, b[0], \"ALPH\"))) {\n c = [c];\n q.na = [q.na];\n q.P = [q.P];\n q.Sa = [q.Sa];\n a: {\n C = a;\n p = b;\n u = c;\n var y = q.gb,\n A = q.na,\n z = q.P,\n B = q.Sa;\n D = 22;\n x(null != C);\n x(null != u);\n w = p[0];\n var F = u[0];\n x(null != A);\n x(null != B);\n A[0] = null;\n z[0] = null;\n for (B[0] = 0; ; ) {\n p[0] = w;\n u[0] = F;\n if (8 > F) {\n p = 7;\n break a;\n }\n var G = Ha(C, w + 4);\n if (4294967286 < G) {\n p = 3;\n break a;\n }\n var H = (8 + G + 1) & -2;\n D += H;\n if (0 < y && D > y) {\n p = 3;\n break a;\n }\n if (!fa(C, w, \"VP8 \") || !fa(C, w, \"VP8L\")) {\n p = 0;\n break a;\n }\n if (F[0] < H) {\n p = 7;\n break a;\n }\n fa(C, w, \"ALPH\") || ((A[0] = C), (z[0] = w + 8), (B[0] = G));\n w += H;\n F -= H;\n }\n }\n c = c[0];\n q.na = q.na[0];\n q.P = q.P[0];\n q.Sa = q.Sa[0];\n if (0 != p) break;\n }\n c = [c];\n q.Ja = [q.Ja];\n q.xa = [q.xa];\n a: if (\n ((y = a),\n (p = b),\n (u = c),\n (A = q.gb[0]),\n (z = q.Ja),\n (B = q.xa),\n (C = p[0]),\n (w = !fa(y, C, \"VP8 \")),\n (D = !fa(y, C, \"VP8L\")),\n x(null != y),\n x(null != u),\n x(null != z),\n x(null != B),\n 8 > u[0])\n )\n p = 7;\n else {\n if (w || D) {\n y = Ha(y, C + 4);\n if (12 <= A && y > A - 12) {\n p = 3;\n break a;\n }\n if (r && y > u[0] - 8) {\n p = 7;\n break a;\n }\n z[0] = y;\n p[0] += 8;\n u[0] -= 8;\n B[0] = D;\n } else\n (B[0] = 5 <= u[0] && 47 == y[C + 0] && !(y[C + 4] >> 5)),\n (z[0] = u[0]);\n p = 0;\n }\n c = c[0];\n q.Ja = q.Ja[0];\n q.xa = q.xa[0];\n b = b[0];\n if (0 != p) break;\n if (4294967286 < q.Ja) return 3;\n null == h || v || (h[0] = q.xa ? 2 : 1);\n g = [g];\n t = [t];\n if (q.xa) {\n if (5 > c) {\n p = 7;\n break;\n }\n h = g;\n r = t;\n v = f;\n null == a || 5 > c\n ? (a = 0)\n : 5 <= c && 47 == a[b + 0] && !(a[b + 4] >> 5)\n ? ((u = [0]),\n (y = [0]),\n (A = [0]),\n (z = new Ra()),\n cb(z, a, b, c),\n mc(z, u, y, A)\n ? (null != h && (h[0] = u[0]),\n null != r && (r[0] = y[0]),\n null != v && (v[0] = A[0]),\n (a = 1))\n : (a = 0))\n : (a = 0);\n } else {\n if (10 > c) {\n p = 7;\n break;\n }\n h = t;\n null == a || 10 > c || !Jc(a, b + 3, c - 3)\n ? (a = 0)\n : ((r = a[b + 0] | (a[b + 1] << 8) | (a[b + 2] << 16)),\n (v = ((a[b + 7] << 8) | a[b + 6]) & 16383),\n (a = ((a[b + 9] << 8) | a[b + 8]) & 16383),\n r & 1 ||\n 3 < ((r >> 1) & 7) ||\n !((r >> 4) & 1) ||\n r >> 5 >= q.Ja ||\n !v ||\n !a\n ? (a = 0)\n : (g && (g[0] = v), h && (h[0] = a), (a = 1)));\n }\n if (!a) return 3;\n g = g[0];\n t = t[0];\n if (n && (l[0] != g || m[0] != t)) return 3;\n null != k &&\n ((k[0] = q),\n (k.offset = b - k.w),\n x(4294967286 > b - k.w),\n x(k.offset == k.ha - c));\n break;\n }\n return 0 == p || (7 == p && n && null == k)\n ? (null != f && (f[0] |= null != q.na && 0 < q.na.length),\n null != d && (d[0] = g),\n null != e && (e[0] = t),\n 0)\n : p;\n }\n function hc(a, b, c) {\n var d = b.width,\n e = b.height,\n f = 0,\n g = 0,\n h = d,\n k = e;\n b.Da = null != a && 0 < a.Da;\n if (\n b.Da &&\n ((h = a.cd),\n (k = a.bd),\n (f = a.v),\n (g = a.j),\n 11 > c || ((f &= -2), (g &= -2)),\n 0 > f || 0 > g || 0 >= h || 0 >= k || f + h > d || g + k > e)\n )\n return 0;\n b.v = f;\n b.j = g;\n b.va = f + h;\n b.o = g + k;\n b.U = h;\n b.T = k;\n b.da = null != a && 0 < a.da;\n if (b.da) {\n c = [a.ib];\n f = [a.hb];\n if (!bc(h, k, c, f)) return 0;\n b.ib = c[0];\n b.hb = f[0];\n }\n b.ob = null != a && a.ob;\n b.Kb = null == a || !a.Sd;\n b.da && ((b.ob = b.ib < (3 * d) / 4 && b.hb < (3 * e) / 4), (b.Kb = 0));\n return 1;\n }\n function Bd(a) {\n if (null == a) return 2;\n if (11 > a.S) {\n var b = a.f.RGBA;\n b.fb += (a.height - 1) * b.A;\n b.A = -b.A;\n } else\n (b = a.f.kb),\n (a = a.height),\n (b.O += (a - 1) * b.fa),\n (b.fa = -b.fa),\n (b.N += ((a - 1) >> 1) * b.Ab),\n (b.Ab = -b.Ab),\n (b.W += ((a - 1) >> 1) * b.Db),\n (b.Db = -b.Db),\n null != b.F && ((b.J += (a - 1) * b.lb), (b.lb = -b.lb));\n return 0;\n }\n function Cd(a, b, c, d) {\n if (null == d || 0 >= a || 0 >= b) return 2;\n if (null != c) {\n if (c.Da) {\n var e = c.cd,\n f = c.bd,\n g = c.v & -2,\n h = c.j & -2;\n if (0 > g || 0 > h || 0 >= e || 0 >= f || g + e > a || h + f > b)\n return 2;\n a = e;\n b = f;\n }\n if (c.da) {\n e = [c.ib];\n f = [c.hb];\n if (!bc(a, b, e, f)) return 2;\n a = e[0];\n b = f[0];\n }\n }\n d.width = a;\n d.height = b;\n a: {\n var k = d.width;\n var l = d.height;\n a = d.S;\n if (0 >= k || 0 >= l || !(a >= Ca && 13 > a)) a = 2;\n else {\n if (0 >= d.Rd && null == d.sd) {\n var g = (f = e = b = 0),\n h = k * Dd[a],\n m = h * l;\n 11 > a ||\n ((b = (k + 1) / 2),\n (f = ((l + 1) / 2) * b),\n 12 == a && ((e = k), (g = e * l)));\n l = V(m + 2 * f + g);\n if (null == l) {\n a = 1;\n break a;\n }\n d.sd = l;\n 11 > a\n ? ((k = d.f.RGBA),\n (k.eb = l),\n (k.fb = 0),\n (k.A = h),\n (k.size = m))\n : ((k = d.f.kb),\n (k.y = l),\n (k.O = 0),\n (k.fa = h),\n (k.Fd = m),\n (k.f = l),\n (k.N = 0 + m),\n (k.Ab = b),\n (k.Cd = f),\n (k.ea = l),\n (k.W = 0 + m + f),\n (k.Db = b),\n (k.Ed = f),\n 12 == a && ((k.F = l), (k.J = 0 + m + 2 * f)),\n (k.Tc = g),\n (k.lb = e));\n }\n b = 1;\n e = d.S;\n f = d.width;\n g = d.height;\n if (e >= Ca && 13 > e)\n if (11 > e)\n (a = d.f.RGBA),\n (h = Math.abs(a.A)),\n (b &= h * (g - 1) + f <= a.size),\n (b &= h >= f * Dd[e]),\n (b &= null != a.eb);\n else {\n a = d.f.kb;\n h = (f + 1) / 2;\n m = (g + 1) / 2;\n k = Math.abs(a.fa);\n var l = Math.abs(a.Ab),\n n = Math.abs(a.Db),\n r = Math.abs(a.lb),\n q = r * (g - 1) + f;\n b &= k * (g - 1) + f <= a.Fd;\n b &= l * (m - 1) + h <= a.Cd;\n b &= n * (m - 1) + h <= a.Ed;\n b = b & (k >= f) & (l >= h) & (n >= h);\n b &= null != a.y;\n b &= null != a.f;\n b &= null != a.ea;\n 12 == e && ((b &= r >= f), (b &= q <= a.Tc), (b &= null != a.F));\n }\n else b = 0;\n a = b ? 0 : 2;\n }\n }\n if (0 != a) return a;\n null != c && c.fd && (a = Bd(d));\n return a;\n }\n var xb = 64,\n Hd = [\n 0,\n 1,\n 3,\n 7,\n 15,\n 31,\n 63,\n 127,\n 255,\n 511,\n 1023,\n 2047,\n 4095,\n 8191,\n 16383,\n 32767,\n 65535,\n 131071,\n 262143,\n 524287,\n 1048575,\n 2097151,\n 4194303,\n 8388607,\n 16777215\n ],\n Gd = 24,\n ob = 32,\n Xb = 8,\n Id = [\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7\n ];\n X(\"Predictor0\", \"PredictorAdd0\");\n self.Predictor0 = function() {\n return 4278190080;\n };\n self.Predictor1 = function(a) {\n return a;\n };\n self.Predictor2 = function(a, b, c) {\n return b[c + 0];\n };\n self.Predictor3 = function(a, b, c) {\n return b[c + 1];\n };\n self.Predictor4 = function(a, b, c) {\n return b[c - 1];\n };\n self.Predictor5 = function(a, b, c) {\n return aa(aa(a, b[c + 1]), b[c + 0]);\n };\n self.Predictor6 = function(a, b, c) {\n return aa(a, b[c - 1]);\n };\n self.Predictor7 = function(a, b, c) {\n return aa(a, b[c + 0]);\n };\n self.Predictor8 = function(a, b, c) {\n return aa(b[c - 1], b[c + 0]);\n };\n self.Predictor9 = function(a, b, c) {\n return aa(b[c + 0], b[c + 1]);\n };\n self.Predictor10 = function(a, b, c) {\n return aa(aa(a, b[c - 1]), aa(b[c + 0], b[c + 1]));\n };\n self.Predictor11 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return 0 >=\n Ia((d >> 24) & 255, (a >> 24) & 255, (b >> 24) & 255) +\n Ia((d >> 16) & 255, (a >> 16) & 255, (b >> 16) & 255) +\n Ia((d >> 8) & 255, (a >> 8) & 255, (b >> 8) & 255) +\n Ia(d & 255, a & 255, b & 255)\n ? d\n : a;\n };\n self.Predictor12 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return (\n ((sa(((a >> 24) & 255) + ((d >> 24) & 255) - ((b >> 24) & 255)) << 24) |\n (sa(((a >> 16) & 255) + ((d >> 16) & 255) - ((b >> 16) & 255)) <<\n 16) |\n (sa(((a >> 8) & 255) + ((d >> 8) & 255) - ((b >> 8) & 255)) << 8) |\n sa((a & 255) + (d & 255) - (b & 255))) >>>\n 0\n );\n };\n self.Predictor13 = function(a, b, c) {\n var d = b[c - 1];\n a = aa(a, b[c + 0]);\n return (\n ((eb((a >> 24) & 255, (d >> 24) & 255) << 24) |\n (eb((a >> 16) & 255, (d >> 16) & 255) << 16) |\n (eb((a >> 8) & 255, (d >> 8) & 255) << 8) |\n eb((a >> 0) & 255, (d >> 0) & 255)) >>>\n 0\n );\n };\n var ee = self.PredictorAdd0;\n self.PredictorAdd1 = cc;\n X(\"Predictor2\", \"PredictorAdd2\");\n X(\"Predictor3\", \"PredictorAdd3\");\n X(\"Predictor4\", \"PredictorAdd4\");\n X(\"Predictor5\", \"PredictorAdd5\");\n X(\"Predictor6\", \"PredictorAdd6\");\n X(\"Predictor7\", \"PredictorAdd7\");\n X(\"Predictor8\", \"PredictorAdd8\");\n X(\"Predictor9\", \"PredictorAdd9\");\n X(\"Predictor10\", \"PredictorAdd10\");\n X(\"Predictor11\", \"PredictorAdd11\");\n X(\"Predictor12\", \"PredictorAdd12\");\n X(\"Predictor13\", \"PredictorAdd13\");\n var fe = self.PredictorAdd2;\n ec(\n \"ColorIndexInverseTransform\",\n \"MapARGB\",\n \"32b\",\n function(a) {\n return (a >> 8) & 255;\n },\n function(a) {\n return a;\n }\n );\n ec(\n \"VP8LColorIndexInverseTransformAlpha\",\n \"MapAlpha\",\n \"8b\",\n function(a) {\n return a;\n },\n function(a) {\n return (a >> 8) & 255;\n }\n );\n var rc = self.ColorIndexInverseTransform,\n ke = self.MapARGB,\n he = self.VP8LColorIndexInverseTransformAlpha,\n le = self.MapAlpha,\n pc,\n qc = (self.VP8LPredictorsAdd = []);\n qc.length = 16;\n (self.VP8LPredictors = []).length = 16;\n (self.VP8LPredictorsAdd_C = []).length = 16;\n (self.VP8LPredictors_C = []).length = 16;\n var Fb,\n sc,\n Gb,\n Hb,\n xc,\n uc,\n bd = V(511),\n cd = V(2041),\n dd = V(225),\n ed = V(767),\n ad = 0,\n Qb = cd,\n mb = dd,\n R = ed,\n U = bd,\n Ca = 0,\n Ua = 1,\n tc = 2,\n Va = 3,\n ya = 4,\n Db = 5,\n wc = 6,\n zb = 7,\n Ab = 8,\n Ja = 9,\n Bb = 10,\n pe = [2, 3, 7],\n oe = [3, 3, 11],\n Dc = [280, 256, 256, 256, 40],\n qe = [0, 1, 1, 1, 0],\n ne = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n de = [\n 24,\n 7,\n 23,\n 25,\n 40,\n 6,\n 39,\n 41,\n 22,\n 26,\n 38,\n 42,\n 56,\n 5,\n 55,\n 57,\n 21,\n 27,\n 54,\n 58,\n 37,\n 43,\n 72,\n 4,\n 71,\n 73,\n 20,\n 28,\n 53,\n 59,\n 70,\n 74,\n 36,\n 44,\n 88,\n 69,\n 75,\n 52,\n 60,\n 3,\n 87,\n 89,\n 19,\n 29,\n 86,\n 90,\n 35,\n 45,\n 68,\n 76,\n 85,\n 91,\n 51,\n 61,\n 104,\n 2,\n 103,\n 105,\n 18,\n 30,\n 102,\n 106,\n 34,\n 46,\n 84,\n 92,\n 67,\n 77,\n 101,\n 107,\n 50,\n 62,\n 120,\n 1,\n 119,\n 121,\n 83,\n 93,\n 17,\n 31,\n 100,\n 108,\n 66,\n 78,\n 118,\n 122,\n 33,\n 47,\n 117,\n 123,\n 49,\n 63,\n 99,\n 109,\n 82,\n 94,\n 0,\n 116,\n 124,\n 65,\n 79,\n 16,\n 32,\n 98,\n 110,\n 48,\n 115,\n 125,\n 81,\n 95,\n 64,\n 114,\n 126,\n 97,\n 111,\n 80,\n 113,\n 127,\n 96,\n 112\n ],\n me = [\n 2954,\n 2956,\n 2958,\n 2962,\n 2970,\n 2986,\n 3018,\n 3082,\n 3212,\n 3468,\n 3980,\n 5004\n ],\n ie = 8,\n Lb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 17,\n 18,\n 19,\n 20,\n 20,\n 21,\n 21,\n 22,\n 22,\n 23,\n 23,\n 24,\n 25,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 59,\n 60,\n 61,\n 62,\n 63,\n 64,\n 65,\n 66,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 75,\n 76,\n 76,\n 77,\n 78,\n 79,\n 80,\n 81,\n 82,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 91,\n 93,\n 95,\n 96,\n 98,\n 100,\n 101,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 118,\n 122,\n 124,\n 126,\n 128,\n 130,\n 132,\n 134,\n 136,\n 138,\n 140,\n 143,\n 145,\n 148,\n 151,\n 154,\n 157\n ],\n Mb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 60,\n 62,\n 64,\n 66,\n 68,\n 70,\n 72,\n 74,\n 76,\n 78,\n 80,\n 82,\n 84,\n 86,\n 88,\n 90,\n 92,\n 94,\n 96,\n 98,\n 100,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 119,\n 122,\n 125,\n 128,\n 131,\n 134,\n 137,\n 140,\n 143,\n 146,\n 149,\n 152,\n 155,\n 158,\n 161,\n 164,\n 167,\n 170,\n 173,\n 177,\n 181,\n 185,\n 189,\n 193,\n 197,\n 201,\n 205,\n 209,\n 213,\n 217,\n 221,\n 225,\n 229,\n 234,\n 239,\n 245,\n 249,\n 254,\n 259,\n 264,\n 269,\n 274,\n 279,\n 284\n ],\n oa = null,\n He = [\n [173, 148, 140, 0],\n [176, 155, 140, 135, 0],\n [180, 157, 141, 134, 130, 0],\n [254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0]\n ],\n Ie = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15],\n Mc = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9],\n Fe = [\n [\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128],\n [189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128],\n [106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]\n ],\n [\n [1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128],\n [181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128],\n [78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]\n ],\n [\n [1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128],\n [184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128],\n [77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]\n ],\n [\n [1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128],\n [170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128],\n [37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]\n ],\n [\n [1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128],\n [207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128],\n [102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]\n ],\n [\n [1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128],\n [177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128],\n [80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62],\n [131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1],\n [68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]\n ],\n [\n [1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128],\n [184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128],\n [81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]\n ],\n [\n [1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128],\n [99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128],\n [23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]\n ],\n [\n [1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128],\n [109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128],\n [44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]\n ],\n [\n [1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128],\n [94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128],\n [22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]\n ],\n [\n [1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128],\n [124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128],\n [35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]\n ],\n [\n [1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128],\n [121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128],\n [45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]\n ],\n [\n [1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128],\n [203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128],\n [175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128],\n [73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]\n ],\n [\n [1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128],\n [239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128],\n [155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]\n ],\n [\n [1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128],\n [201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128],\n [69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]\n ],\n [\n [1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128],\n [223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128],\n [141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128],\n [149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128],\n [213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128],\n [55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255],\n [126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128],\n [61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]\n ],\n [\n [1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128],\n [166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128],\n [39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]\n ],\n [\n [1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128],\n [124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128],\n [24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]\n ],\n [\n [1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128],\n [149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128],\n [28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]\n ],\n [\n [1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128],\n [123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128],\n [20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]\n ],\n [\n [1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128],\n [168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128],\n [47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]\n ],\n [\n [1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128],\n [141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128],\n [42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ]\n ],\n Ke = [\n [\n [231, 120, 48, 89, 115, 113, 120, 152, 112],\n [152, 179, 64, 126, 170, 118, 46, 70, 95],\n [175, 69, 143, 80, 85, 82, 72, 155, 103],\n [56, 58, 10, 171, 218, 189, 17, 13, 152],\n [114, 26, 17, 163, 44, 195, 21, 10, 173],\n [121, 24, 80, 195, 26, 62, 44, 64, 85],\n [144, 71, 10, 38, 171, 213, 144, 34, 26],\n [170, 46, 55, 19, 136, 160, 33, 206, 71],\n [63, 20, 8, 114, 114, 208, 12, 9, 226],\n [81, 40, 11, 96, 182, 84, 29, 16, 36]\n ],\n [\n [134, 183, 89, 137, 98, 101, 106, 165, 148],\n [72, 187, 100, 130, 157, 111, 32, 75, 80],\n [66, 102, 167, 99, 74, 62, 40, 234, 128],\n [41, 53, 9, 178, 241, 141, 26, 8, 107],\n [74, 43, 26, 146, 73, 166, 49, 23, 157],\n [65, 38, 105, 160, 51, 52, 31, 115, 128],\n [104, 79, 12, 27, 217, 255, 87, 17, 7],\n [87, 68, 71, 44, 114, 51, 15, 186, 23],\n [47, 41, 14, 110, 182, 183, 21, 17, 194],\n [66, 45, 25, 102, 197, 189, 23, 18, 22]\n ],\n [\n [88, 88, 147, 150, 42, 46, 45, 196, 205],\n [43, 97, 183, 117, 85, 38, 35, 179, 61],\n [39, 53, 200, 87, 26, 21, 43, 232, 171],\n [56, 34, 51, 104, 114, 102, 29, 93, 77],\n [39, 28, 85, 171, 58, 165, 90, 98, 64],\n [34, 22, 116, 206, 23, 34, 43, 166, 73],\n [107, 54, 32, 26, 51, 1, 81, 43, 31],\n [68, 25, 106, 22, 64, 171, 36, 225, 114],\n [34, 19, 21, 102, 132, 188, 16, 76, 124],\n [62, 18, 78, 95, 85, 57, 50, 48, 51]\n ],\n [\n [193, 101, 35, 159, 215, 111, 89, 46, 111],\n [60, 148, 31, 172, 219, 228, 21, 18, 111],\n [112, 113, 77, 85, 179, 255, 38, 120, 114],\n [40, 42, 1, 196, 245, 209, 10, 25, 109],\n [88, 43, 29, 140, 166, 213, 37, 43, 154],\n [61, 63, 30, 155, 67, 45, 68, 1, 209],\n [100, 80, 8, 43, 154, 1, 51, 26, 71],\n [142, 78, 78, 16, 255, 128, 34, 197, 171],\n [41, 40, 5, 102, 211, 183, 4, 1, 221],\n [51, 50, 17, 168, 209, 192, 23, 25, 82]\n ],\n [\n [138, 31, 36, 171, 27, 166, 38, 44, 229],\n [67, 87, 58, 169, 82, 115, 26, 59, 179],\n [63, 59, 90, 180, 59, 166, 93, 73, 154],\n [40, 40, 21, 116, 143, 209, 34, 39, 175],\n [47, 15, 16, 183, 34, 223, 49, 45, 183],\n [46, 17, 33, 183, 6, 98, 15, 32, 183],\n [57, 46, 22, 24, 128, 1, 54, 17, 37],\n [65, 32, 73, 115, 28, 128, 23, 128, 205],\n [40, 3, 9, 115, 51, 192, 18, 6, 223],\n [87, 37, 9, 115, 59, 77, 64, 21, 47]\n ],\n [\n [104, 55, 44, 218, 9, 54, 53, 130, 226],\n [64, 90, 70, 205, 40, 41, 23, 26, 57],\n [54, 57, 112, 184, 5, 41, 38, 166, 213],\n [30, 34, 26, 133, 152, 116, 10, 32, 134],\n [39, 19, 53, 221, 26, 114, 32, 73, 255],\n [31, 9, 65, 234, 2, 15, 1, 118, 73],\n [75, 32, 12, 51, 192, 255, 160, 43, 51],\n [88, 31, 35, 67, 102, 85, 55, 186, 85],\n [56, 21, 23, 111, 59, 205, 45, 37, 192],\n [55, 38, 70, 124, 73, 102, 1, 34, 98]\n ],\n [\n [125, 98, 42, 88, 104, 85, 117, 175, 82],\n [95, 84, 53, 89, 128, 100, 113, 101, 45],\n [75, 79, 123, 47, 51, 128, 81, 171, 1],\n [57, 17, 5, 71, 102, 57, 53, 41, 49],\n [38, 33, 13, 121, 57, 73, 26, 1, 85],\n [41, 10, 67, 138, 77, 110, 90, 47, 114],\n [115, 21, 2, 10, 102, 255, 166, 23, 6],\n [101, 29, 16, 10, 85, 128, 101, 196, 26],\n [57, 18, 10, 102, 102, 213, 34, 20, 43],\n [117, 20, 15, 36, 163, 128, 68, 1, 26]\n ],\n [\n [102, 61, 71, 37, 34, 53, 31, 243, 192],\n [69, 60, 71, 38, 73, 119, 28, 222, 37],\n [68, 45, 128, 34, 1, 47, 11, 245, 171],\n [62, 17, 19, 70, 146, 85, 55, 62, 70],\n [37, 43, 37, 154, 100, 163, 85, 160, 1],\n [63, 9, 92, 136, 28, 64, 32, 201, 85],\n [75, 15, 9, 9, 64, 255, 184, 119, 16],\n [86, 6, 28, 5, 64, 255, 25, 248, 1],\n [56, 8, 17, 132, 137, 255, 55, 116, 128],\n [58, 15, 20, 82, 135, 57, 26, 121, 40]\n ],\n [\n [164, 50, 31, 137, 154, 133, 25, 35, 218],\n [51, 103, 44, 131, 131, 123, 31, 6, 158],\n [86, 40, 64, 135, 148, 224, 45, 183, 128],\n [22, 26, 17, 131, 240, 154, 14, 1, 209],\n [45, 16, 21, 91, 64, 222, 7, 1, 197],\n [56, 21, 39, 155, 60, 138, 23, 102, 213],\n [83, 12, 13, 54, 192, 255, 68, 47, 28],\n [85, 26, 85, 85, 128, 128, 32, 146, 171],\n [18, 11, 7, 63, 144, 171, 4, 4, 246],\n [35, 27, 10, 146, 174, 171, 12, 26, 128]\n ],\n [\n [190, 80, 35, 99, 180, 80, 126, 54, 45],\n [85, 126, 47, 87, 176, 51, 41, 20, 32],\n [101, 75, 128, 139, 118, 146, 116, 128, 85],\n [56, 41, 15, 176, 236, 85, 37, 9, 62],\n [71, 30, 17, 119, 118, 255, 17, 18, 138],\n [101, 38, 60, 138, 55, 70, 43, 26, 142],\n [146, 36, 19, 30, 171, 255, 97, 27, 20],\n [138, 45, 61, 62, 219, 1, 81, 188, 64],\n [32, 41, 20, 117, 151, 142, 20, 21, 163],\n [112, 19, 12, 61, 195, 128, 48, 4, 24]\n ]\n ],\n Ee = [\n [\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255],\n [250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255],\n [234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255],\n [251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ]\n ],\n Ge = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0],\n Nc,\n Y = [],\n W = [],\n ka = [],\n Za,\n fd,\n Nb,\n pa,\n Ob,\n Xc,\n Tc,\n Yc,\n Uc,\n Zc,\n Vc,\n $c,\n Wc,\n Rc,\n Pc,\n Sc,\n Qc,\n re = 1,\n Cc = 2,\n ia = [],\n za,\n vc,\n fc,\n Fc,\n P = [];\n va(\"UpsampleRgbLinePair\", Ga, 3);\n va(\"UpsampleBgrLinePair\", Tb, 3);\n va(\"UpsampleRgbaLinePair\", wd, 4);\n va(\"UpsampleBgraLinePair\", vd, 4);\n va(\"UpsampleArgbLinePair\", ud, 4);\n va(\"UpsampleRgba4444LinePair\", td, 2);\n va(\"UpsampleRgb565LinePair\", sd, 2);\n var Mf = self.UpsampleRgbLinePair,\n Nf = self.UpsampleBgrLinePair,\n nd = self.UpsampleRgbaLinePair,\n od = self.UpsampleBgraLinePair,\n pd = self.UpsampleArgbLinePair,\n qd = self.UpsampleRgba4444LinePair,\n Of = self.UpsampleRgb565LinePair,\n Wa = 16,\n Ba = 1 << (Wa - 1),\n ta = -227,\n Eb = 482,\n rd = 6,\n Pf = (256 << rd) - 1,\n jc = 0,\n Yd = V(256),\n ae = V(256),\n $d = V(256),\n Zd = V(256),\n be = V(Eb - ta),\n ce = V(Eb - ta);\n la(\"YuvToRgbRow\", Ga, 3);\n la(\"YuvToBgrRow\", Tb, 3);\n la(\"YuvToRgbaRow\", wd, 4);\n la(\"YuvToBgraRow\", vd, 4);\n la(\"YuvToArgbRow\", ud, 4);\n la(\"YuvToRgba4444Row\", td, 2);\n la(\"YuvToRgb565Row\", sd, 2);\n var zd = [\n 0,\n 4,\n 8,\n 12,\n 128,\n 132,\n 136,\n 140,\n 256,\n 260,\n 264,\n 268,\n 384,\n 388,\n 392,\n 396\n ],\n Ya = [0, 2, 8],\n Qf = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1],\n Ne = 1;\n this.WebPDecodeRGBA = function(a, b, c, d, e) {\n var f = Ua;\n var g = new Cf(),\n h = new Cb();\n g.ba = h;\n h.S = f;\n h.width = [h.width];\n h.height = [h.height];\n var k = h.width;\n var l = h.height,\n m = new Td();\n if (null == m || null == a) var n = 2;\n else\n x(null != m),\n (n = Ad(a, b, c, m.width, m.height, m.Pd, m.Qd, m.format, null));\n 0 != n\n ? (k = 0)\n : (null != k && (k[0] = m.width[0]),\n null != l && (l[0] = m.height[0]),\n (k = 1));\n if (k) {\n h.width = h.width[0];\n h.height = h.height[0];\n null != d && (d[0] = h.width);\n null != e && (e[0] = h.height);\n b: {\n d = new Oa();\n e = new md();\n e.data = a;\n e.w = b;\n e.ha = c;\n e.kd = 1;\n b = [0];\n x(null != e);\n a = Ad(e.data, e.w, e.ha, null, null, null, b, null, e);\n (0 == a || 7 == a) && b[0] && (a = 4);\n b = a;\n if (0 == b) {\n x(null != g);\n d.data = e.data;\n d.w = e.w + e.offset;\n d.ha = e.ha - e.offset;\n d.put = kc;\n d.ac = gc;\n d.bc = lc;\n d.ma = g;\n if (e.xa) {\n a = Bc();\n if (null == a) {\n g = 1;\n break b;\n }\n if (te(a, d)) {\n b = Cd(d.width, d.height, g.Oa, g.ba);\n if ((d = 0 == b)) {\n c: {\n d = a;\n d: for (;;) {\n if (null == d) {\n d = 0;\n break c;\n }\n x(null != d.s.yc);\n x(null != d.s.Ya);\n x(0 < d.s.Wb);\n c = d.l;\n x(null != c);\n e = c.ma;\n x(null != e);\n if (0 != d.xb) {\n d.ca = e.ba;\n d.tb = e.tb;\n x(null != d.ca);\n if (!hc(e.Oa, c, Va)) {\n d.a = 2;\n break d;\n }\n if (!Ec(d, c.width)) break d;\n if (c.da) break d;\n (c.da || hb(d.ca.S)) && Aa();\n 11 > d.ca.S ||\n (alert(\"todo:WebPInitConvertARGBToYUV\"),\n null != d.ca.f.kb.F && Aa());\n if (\n d.Pb &&\n 0 < d.s.ua &&\n null == d.s.vb.X &&\n !Zb(d.s.vb, d.s.Wa.Xa)\n ) {\n d.a = 1;\n break d;\n }\n d.xb = 0;\n }\n if (!Jb(d, d.V, d.Ba, d.c, d.i, c.o, ge)) break d;\n e.Dc = d.Ma;\n d = 1;\n break c;\n }\n x(0 != d.a);\n d = 0;\n }\n d = !d;\n }\n d && (b = a.a);\n } else b = a.a;\n } else {\n a = new Ce();\n if (null == a) {\n g = 1;\n break b;\n }\n a.Fa = e.na;\n a.P = e.P;\n a.qc = e.Sa;\n if (Kc(a, d)) {\n if (((b = Cd(d.width, d.height, g.Oa, g.ba)), 0 == b)) {\n a.Aa = 0;\n c = g.Oa;\n e = a;\n x(null != e);\n if (null != c) {\n k = c.Md;\n k = 0 > k ? 0 : 100 < k ? 255 : (255 * k) / 100;\n if (0 < k) {\n for (l = m = 0; 4 > l; ++l)\n (n = e.pb[l]),\n 12 > n.lc &&\n (n.ia = (k * Qf[0 > n.lc ? 0 : n.lc]) >> 3),\n (m |= n.ia);\n m && (alert(\"todo:VP8InitRandom\"), (e.ia = 1));\n }\n e.Ga = c.Id;\n 100 < e.Ga ? (e.Ga = 100) : 0 > e.Ga && (e.Ga = 0);\n }\n Me(a, d) || (b = a.a);\n }\n } else b = a.a;\n }\n 0 == b && null != g.Oa && g.Oa.fd && (b = Bd(g.ba));\n }\n g = b;\n }\n f = 0 != g ? null : 11 > f ? h.f.RGBA.eb : h.f.kb.y;\n } else f = null;\n return f;\n };\n var Dd = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];\n };\n new _WebPDecoder();\n\n /** @license\n * Copyright (c) 2017 Dominik Homberger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nhttps://webpjs.appspot.com\nWebPRiffParser dominikhlbg@gmail.com\n*/\n\n function memcmp(data, data_off, str, size) {\n for (var i = 0; i < size; i++)\n if (data[data_off + i] != str.charCodeAt(i)) return true;\n return false;\n }\n\n function GetTag(data, data_off) {\n var str = \"\";\n for (var i = 0; i < 4; i++) str += String.fromCharCode(data[data_off++]);\n return str;\n }\n\n function GetLE16(data, data_off) {\n return (data[data_off + 0] << 0) | (data[data_off + 1] << 8);\n }\n\n function GetLE24(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16)) >>>\n 0\n );\n }\n\n function GetLE32(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16) |\n (data[data_off + 3] << 24)) >>>\n 0\n );\n }\n\n function WebPRiffParser(src, src_off) {\n var imagearray = {};\n var i = 0;\n var alpha_chunk = false;\n var alpha_size = 0;\n var alpha_offset = 0;\n imagearray[\"frames\"] = [];\n if (memcmp(src, src_off, \"RIFF\", 4)) return;\n src_off += 4;\n var riff_size = GetLE32(src, src_off) + 8;\n src_off += 8;\n\n while (src_off < src.length) {\n var fourcc = GetTag(src, src_off);\n src_off += 4;\n\n var payload_size = GetLE32(src, src_off);\n src_off += 4;\n var payload_size_padded = payload_size + (payload_size & 1);\n\n switch (fourcc) {\n case \"VP8 \":\n case \"VP8L\":\n if (typeof imagearray[\"frames\"][i] === \"undefined\")\n imagearray[\"frames\"][i] = {};\n var obj = imagearray[\"frames\"][i];\n var height = [0];\n var width = [0];\n obj[\"src_off\"] = alpha_chunk ? alpha_offset : src_off - 8;\n obj[\"src_size\"] = alpha_size + payload_size + 8;\n //var rgba = webpdecoder.WebPDecodeRGBA(src,(alpha_chunk?alpha_offset:src_off-8),alpha_size+payload_size+8,width,height);\n //imagearray[i]={'rgba':rgba,'width':width[0],'height':height[0]};\n i++;\n if (alpha_chunk) {\n alpha_chunk = false;\n alpha_size = 0;\n alpha_offset = 0;\n }\n break;\n case \"VP8X\":\n var obj = (imagearray[\"header\"] = {});\n var feature_flags = (obj[\"feature_flags\"] = src[src_off]);\n var src_off_ = src_off + 4;\n var canvas_width = (obj[\"canvas_width\"] = 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n var canvas_height = (obj[\"canvas_height\"] =\n 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n break;\n case \"ALPH\":\n alpha_chunk = true;\n alpha_size = payload_size_padded + 8;\n alpha_offset = src_off - 8;\n break;\n\n case \"ANIM\":\n var obj = imagearray[\"header\"];\n var bgcolor = (obj[\"bgcolor\"] = GetLE32(src, src_off));\n src_off_ = src_off + 4;\n\n var loop_count = (obj[\"loop_count\"] = GetLE16(src, src_off_));\n src_off_ += 2;\n break;\n case \"ANMF\":\n var offset_x = 0,\n offset_y = 0,\n width = 0,\n height = 0,\n duration = 0,\n blend = 0,\n dispose = 0,\n temp = 0;\n var obj = (imagearray[\"frames\"][i] = {});\n obj[\"offset_x\"] = offset_x = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"offset_y\"] = offset_y = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"width\"] = width = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"height\"] = height = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"duration\"] = duration = GetLE24(src, src_off);\n src_off += 3;\n temp = src[src_off++];\n obj[\"dispose\"] = dispose = temp & 1;\n obj[\"blend\"] = blend = (temp >> 1) & 1;\n break;\n default:\n }\n if (fourcc != \"ANMF\") src_off += payload_size_padded;\n }\n return imagearray;\n }\n\n var height = [0];\n var width = [0];\n var pixels = [];\n var webpdecoder = new _WebPDecoder();\n\n var response = imageData;\n var imagearray = WebPRiffParser(response, 0);\n imagearray[\"response\"] = response;\n imagearray[\"rgbaoutput\"] = true;\n imagearray[\"dataurl\"] = false;\n\n var header = imagearray[\"header\"] ? imagearray[\"header\"] : null;\n var frames = imagearray[\"frames\"] ? imagearray[\"frames\"] : null;\n\n if (header) {\n header[\"loop_counter\"] = header[\"loop_count\"];\n height = [header[\"canvas_height\"]];\n width = [header[\"canvas_width\"]];\n\n var blend = false;\n for (var f = 0; f < frames.length; f++)\n if (frames[f][\"blend\"] == 0) {\n blend = true;\n break;\n }\n }\n\n var frame = frames[0];\n var rgba = webpdecoder.WebPDecodeRGBA(\n response,\n frame[\"src_off\"],\n frame[\"src_size\"],\n width,\n height\n );\n frame[\"rgba\"] = rgba;\n frame[\"imgwidth\"] = width[0];\n frame[\"imgheight\"] = height[0];\n\n for (var i = 0; i < width[0] * height[0] * 4; i++) {\n pixels[i] = rgba[i];\n }\n\n this.width = width;\n this.height = height;\n this.data = pixels;\n return this;\n}\n\nWebPDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { WebPDecoder };\n","/**\n * @license\n *\n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\nimport { PNG } from \"../libs/png.js\";\n\n/**\n * jsPDF PNG PlugIn\n * @name png_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /*\n * @see http://www.w3.org/TR/PNG-Chunks.html\n *\n Color Allowed Interpretation\n Type Bit Depths\n\n 0 1,2,4,8,16 Each pixel is a grayscale sample.\n\n 2 8,16 Each pixel is an R,G,B triple.\n\n 3 1,2,4,8 Each pixel is a palette index;\n a PLTE chunk must appear.\n\n 4 8,16 Each pixel is a grayscale sample,\n followed by an alpha sample.\n\n 6 8,16 Each pixel is an R,G,B triple,\n followed by an alpha sample.\n */\n\n /*\n * PNG filter method types\n *\n * @see http://www.w3.org/TR/PNG-Filters.html\n * @see http://www.libpng.org/pub/png/book/chapter09.html\n *\n * This is what the value 'Predictor' in decode params relates to\n *\n * 15 is \"optimal prediction\", which means the prediction algorithm can change from line to line.\n * In that case, you actually have to read the first byte off each line for the prediction algorthim (which should be 0-4, corresponding to PDF 10-14) and select the appropriate unprediction algorithm based on that byte.\n *\n 0 None\n 1 Sub\n 2 Up\n 3 Average\n 4 Paeth\n */\n\n var canCompress = function(value) {\n return value !== jsPDFAPI.image_compression.NONE && hasCompressionJS();\n };\n\n var hasCompressionJS = function() {\n return typeof zlibSync === \"function\";\n };\n var compressBytes = function(bytes, lineLength, colorsPerPixel, compression) {\n var level = 4;\n var filter_method = filterUp;\n\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n level = 1;\n filter_method = filterSub;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n level = 6;\n filter_method = filterAverage;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n level = 9;\n filter_method = filterPaeth;\n break;\n }\n\n bytes = applyPngFilterMethod(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n );\n var dat = zlibSync(bytes, { level: level });\n return jsPDFAPI.__addimage__.arrayBufferToBinaryString(dat);\n };\n\n var applyPngFilterMethod = function(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n ) {\n var lines = bytes.length / lineLength,\n result = new Uint8Array(bytes.length + lines),\n filter_methods = getFilterMethods(),\n line,\n prevLine,\n offset;\n\n for (var i = 0; i < lines; i += 1) {\n offset = i * lineLength;\n line = bytes.subarray(offset, offset + lineLength);\n\n if (filter_method) {\n result.set(filter_method(line, colorsPerPixel, prevLine), offset + i);\n } else {\n var len = filter_methods.length,\n results = [];\n\n for (var j; j < len; j += 1) {\n results[j] = filter_methods[j](line, colorsPerPixel, prevLine);\n }\n\n var ind = getIndexOfSmallestSum(results.concat());\n\n result.set(results[ind], offset + i);\n }\n\n prevLine = line;\n }\n\n return result;\n };\n\n var filterNone = function(line) {\n /*var result = new Uint8Array(line.length + 1);\n result[0] = 0;\n result.set(line, 1);*/\n\n var result = Array.apply([], line);\n result.unshift(0);\n\n return result;\n };\n\n var filterSub = function(line, colorsPerPixel) {\n var result = [],\n len = line.length,\n left;\n\n result[0] = 1;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n result[i + 1] = (line[i] - left + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterUp = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n up;\n\n result[0] = 2;\n\n for (var i = 0; i < len; i += 1) {\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] - up + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterAverage = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up;\n\n result[0] = 3;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] + 0x0100 - ((left + up) >>> 1)) & 0xff;\n }\n\n return result;\n };\n\n var filterPaeth = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up,\n upLeft,\n paeth;\n\n result[0] = 4;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n upLeft = (prevLine && prevLine[i - colorsPerPixel]) || 0;\n paeth = paethPredictor(left, up, upLeft);\n result[i + 1] = (line[i] - paeth + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var paethPredictor = function(left, up, upLeft) {\n if (left === up && up === upLeft) {\n return left;\n }\n var pLeft = Math.abs(up - upLeft),\n pUp = Math.abs(left - upLeft),\n pUpLeft = Math.abs(left + up - upLeft - upLeft);\n return pLeft <= pUp && pLeft <= pUpLeft\n ? left\n : pUp <= pUpLeft\n ? up\n : upLeft;\n };\n\n var getFilterMethods = function() {\n return [filterNone, filterSub, filterUp, filterAverage, filterPaeth];\n };\n\n var getIndexOfSmallestSum = function(arrays) {\n var sum = arrays.map(function(value) {\n return value.reduce(function(pv, cv) {\n return pv + Math.abs(cv);\n }, 0);\n });\n return sum.indexOf(Math.min.apply(null, sum));\n };\n\n var getPredictorFromCompression = function(compression) {\n var predictor;\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n predictor = 11;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n predictor = 13;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n predictor = 14;\n break;\n\n default:\n predictor = 12;\n break;\n }\n return predictor;\n };\n\n /**\n * @name processPNG\n * @function\n * @ignore\n */\n jsPDFAPI.processPNG = function(imageData, index, alias, compression) {\n \"use strict\";\n\n var colorSpace,\n filter = this.decode.FLATE_DECODE,\n bitsPerComponent,\n image,\n decodeParameters = \"\",\n trns,\n colors,\n pal,\n smask,\n pixels,\n len,\n alphaData,\n imgData,\n hasColors,\n pixel,\n i,\n n;\n\n if (this.__addimage__.isArrayBuffer(imageData))\n imageData = new Uint8Array(imageData);\n\n if (this.__addimage__.isArrayBufferView(imageData)) {\n image = new PNG(imageData);\n imageData = image.imgData;\n bitsPerComponent = image.bits;\n colorSpace = image.colorSpace;\n colors = image.colors;\n\n /*\n * colorType 6 - Each pixel is an R,G,B triple, followed by an alpha sample.\n *\n * colorType 4 - Each pixel is a grayscale sample, followed by an alpha sample.\n *\n * Extract alpha to create two separate images, using the alpha as a sMask\n */\n if ([4, 6].indexOf(image.colorType) !== -1) {\n /*\n * processes 8 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 8) {\n pixels =\n image.pixelBitlength == 32\n ? new Uint32Array(image.decodePixels().buffer)\n : image.pixelBitlength == 16\n ? new Uint16Array(image.decodePixels().buffer)\n : new Uint8Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(len * image.colors);\n alphaData = new Uint8Array(len);\n var pDiff = image.pixelBitlength - image.bits;\n i = 0;\n n = 0;\n var pbl;\n\n for (; i < len; i++) {\n pixel = pixels[i];\n pbl = 0;\n\n while (pbl < pDiff) {\n imgData[n++] = (pixel >>> pbl) & 0xff;\n pbl = pbl + image.bits;\n }\n\n alphaData[i] = (pixel >>> pbl) & 0xff;\n }\n }\n\n /*\n * processes 16 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 16) {\n pixels = new Uint32Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(\n len * (32 / image.pixelBitlength) * image.colors\n );\n alphaData = new Uint8Array(len * (32 / image.pixelBitlength));\n hasColors = image.colors > 1;\n i = 0;\n n = 0;\n var a = 0;\n\n while (i < len) {\n pixel = pixels[i++];\n\n imgData[n++] = (pixel >>> 0) & 0xff;\n\n if (hasColors) {\n imgData[n++] = (pixel >>> 16) & 0xff;\n\n pixel = pixels[i++];\n imgData[n++] = (pixel >>> 0) & 0xff;\n }\n\n alphaData[a++] = (pixel >>> 16) & 0xff;\n }\n bitsPerComponent = 8;\n }\n\n if (canCompress(compression)) {\n imageData = compressBytes(\n imgData,\n image.width * image.colors,\n image.colors,\n compression\n );\n smask = compressBytes(alphaData, image.width, 1, compression);\n } else {\n imageData = imgData;\n smask = alphaData;\n filter = undefined;\n }\n }\n\n /*\n * Indexed png. Each pixel is a palette index.\n */\n if (image.colorType === 3) {\n colorSpace = this.color_spaces.INDEXED;\n pal = image.palette;\n\n if (image.transparency.indexed) {\n var trans = image.transparency.indexed;\n var total = 0;\n i = 0;\n len = trans.length;\n\n for (; i < len; ++i) {\n total += trans[i];\n }\n\n total = total / 255;\n\n /*\n * a single color is specified as 100% transparent (0),\n * so we set trns to use a /Mask with that index\n */\n if (total === len - 1 && trans.indexOf(0) !== -1) {\n trns = [trans.indexOf(0)];\n\n /*\n * there's more than one colour within the palette that specifies\n * a transparency value less than 255, so we unroll the pixels to create an image sMask\n */\n } else if (total !== len) {\n pixels = image.decodePixels();\n alphaData = new Uint8Array(pixels.length);\n i = 0;\n len = pixels.length;\n\n for (; i < len; i++) {\n alphaData[i] = trans[pixels[i]];\n }\n\n smask = compressBytes(alphaData, image.width, 1);\n }\n }\n }\n\n var predictor = getPredictorFromCompression(compression);\n\n if (filter === this.decode.FLATE_DECODE) {\n decodeParameters = \"/Predictor \" + predictor + \" \";\n }\n decodeParameters +=\n \"/Colors \" +\n colors +\n \" /BitsPerComponent \" +\n bitsPerComponent +\n \" /Columns \" +\n image.width;\n\n if (\n this.__addimage__.isArrayBuffer(imageData) ||\n this.__addimage__.isArrayBufferView(imageData)\n ) {\n imageData = this.__addimage__.arrayBufferToBinaryString(imageData);\n }\n\n if (\n (smask && this.__addimage__.isArrayBuffer(smask)) ||\n this.__addimage__.isArrayBufferView(smask)\n ) {\n smask = this.__addimage__.arrayBufferToBinaryString(smask);\n }\n\n return {\n alias: alias,\n data: imageData,\n index: index,\n filter: filter,\n decodeParameters: decodeParameters,\n transparency: trns,\n palette: pal,\n sMask: smask,\n predictor: predictor,\n width: image.width,\n height: image.height,\n bitsPerComponent: bitsPerComponent,\n colorSpace: colorSpace\n };\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { GifReader } from \"../libs/omggif.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\n\n/**\n * jsPDF Gif Support PlugIn\n *\n * @name gif_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processGIF89A = function(imageData, index, alias, compression) {\n var reader = new GifReader(imageData);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = [];\n\n reader.decodeAndBlitFrameRGBA(0, pixels);\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n\n jsPDFAPI.processGIF87A = jsPDFAPI.processGIF89A;\n})(jsPDF.API);\n","import { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { BmpDecoder } from \"../libs/BMPDecoder.js\";\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @license\n * Copyright (c) 2018 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF bmp Support PlugIn\n * @name bmp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processBMP = function(imageData, index, alias, compression) {\n var reader = new BmpDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2019 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { WebPDecoder } from \"../libs/WebPDecoder.js\";\n\n/**\n * jsPDF webp Support PlugIn\n *\n * @name webp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processWEBP = function(imageData, index, alias, compression) {\n var reader = new WebPDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n *\n * Copyright (c) 2021 Antti Palola, https://github.com/Pantura\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF RGBA array PlugIn\n * @name rgba_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name processRGBA\n * @function\n *\n * Process RGBA Array. This is a one-dimension array with pixel data [red, green, blue, alpha, red, green, ...].\n * RGBA array data can be obtained from DOM canvas getImageData.\n * @ignore\n */\n jsPDFAPI.processRGBA = function(imageData, index, alias) {\n \"use strict\";\n\n var imagePixels = imageData.data;\n var length = imagePixels.length;\n // jsPDF takes alpha data separately so extract that.\n var rgbOut = new Uint8Array((length / 4) * 3);\n var alphaOut = new Uint8Array(length / 4);\n var outIndex = 0;\n var alphaIndex = 0;\n\n for (var i = 0; i < length; i += 4) {\n var r = imagePixels[i];\n var g = imagePixels[i + 1];\n var b = imagePixels[i + 2];\n var alpha = imagePixels[i + 3];\n rgbOut[outIndex++] = r;\n rgbOut[outIndex++] = g;\n rgbOut[outIndex++] = b;\n alphaOut[alphaIndex++] = alpha;\n }\n\n var rgbData = this.__addimage__.arrayBufferToBinaryString(rgbOut);\n var alphaData = this.__addimage__.arrayBufferToBinaryString(alphaOut);\n\n return {\n alpha: alphaData,\n data: rgbData,\n index: index,\n alias: alias,\n colorSpace: \"DeviceRGB\",\n bitsPerComponent: 8,\n width: imageData.width,\n height: imageData.height\n };\n };\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF setLanguage Plugin\n *\n * @name setLanguage\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Add Language Tag to the generated PDF\n *\n * @name setLanguage\n * @function\n * @param {string} langCode The Language code as ISO-639-1 (e.g. 'en') or as country language code (e.g. 'en-GB').\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF()\n * doc.text(10, 10, 'This is a test')\n * doc.setLanguage(\"en-US\")\n * doc.save('english.pdf')\n */\n jsPDFAPI.setLanguage = function(langCode) {\n \"use strict\";\n\n var langCodes = {\n af: \"Afrikaans\",\n sq: \"Albanian\",\n ar: \"Arabic (Standard)\",\n \"ar-DZ\": \"Arabic (Algeria)\",\n \"ar-BH\": \"Arabic (Bahrain)\",\n \"ar-EG\": \"Arabic (Egypt)\",\n \"ar-IQ\": \"Arabic (Iraq)\",\n \"ar-JO\": \"Arabic (Jordan)\",\n \"ar-KW\": \"Arabic (Kuwait)\",\n \"ar-LB\": \"Arabic (Lebanon)\",\n \"ar-LY\": \"Arabic (Libya)\",\n \"ar-MA\": \"Arabic (Morocco)\",\n \"ar-OM\": \"Arabic (Oman)\",\n \"ar-QA\": \"Arabic (Qatar)\",\n \"ar-SA\": \"Arabic (Saudi Arabia)\",\n \"ar-SY\": \"Arabic (Syria)\",\n \"ar-TN\": \"Arabic (Tunisia)\",\n \"ar-AE\": \"Arabic (U.A.E.)\",\n \"ar-YE\": \"Arabic (Yemen)\",\n an: \"Aragonese\",\n hy: \"Armenian\",\n as: \"Assamese\",\n ast: \"Asturian\",\n az: \"Azerbaijani\",\n eu: \"Basque\",\n be: \"Belarusian\",\n bn: \"Bengali\",\n bs: \"Bosnian\",\n br: \"Breton\",\n bg: \"Bulgarian\",\n my: \"Burmese\",\n ca: \"Catalan\",\n ch: \"Chamorro\",\n ce: \"Chechen\",\n zh: \"Chinese\",\n \"zh-HK\": \"Chinese (Hong Kong)\",\n \"zh-CN\": \"Chinese (PRC)\",\n \"zh-SG\": \"Chinese (Singapore)\",\n \"zh-TW\": \"Chinese (Taiwan)\",\n cv: \"Chuvash\",\n co: \"Corsican\",\n cr: \"Cree\",\n hr: \"Croatian\",\n cs: \"Czech\",\n da: \"Danish\",\n nl: \"Dutch (Standard)\",\n \"nl-BE\": \"Dutch (Belgian)\",\n en: \"English\",\n \"en-AU\": \"English (Australia)\",\n \"en-BZ\": \"English (Belize)\",\n \"en-CA\": \"English (Canada)\",\n \"en-IE\": \"English (Ireland)\",\n \"en-JM\": \"English (Jamaica)\",\n \"en-NZ\": \"English (New Zealand)\",\n \"en-PH\": \"English (Philippines)\",\n \"en-ZA\": \"English (South Africa)\",\n \"en-TT\": \"English (Trinidad & Tobago)\",\n \"en-GB\": \"English (United Kingdom)\",\n \"en-US\": \"English (United States)\",\n \"en-ZW\": \"English (Zimbabwe)\",\n eo: \"Esperanto\",\n et: \"Estonian\",\n fo: \"Faeroese\",\n fj: \"Fijian\",\n fi: \"Finnish\",\n fr: \"French (Standard)\",\n \"fr-BE\": \"French (Belgium)\",\n \"fr-CA\": \"French (Canada)\",\n \"fr-FR\": \"French (France)\",\n \"fr-LU\": \"French (Luxembourg)\",\n \"fr-MC\": \"French (Monaco)\",\n \"fr-CH\": \"French (Switzerland)\",\n fy: \"Frisian\",\n fur: \"Friulian\",\n gd: \"Gaelic (Scots)\",\n \"gd-IE\": \"Gaelic (Irish)\",\n gl: \"Galacian\",\n ka: \"Georgian\",\n de: \"German (Standard)\",\n \"de-AT\": \"German (Austria)\",\n \"de-DE\": \"German (Germany)\",\n \"de-LI\": \"German (Liechtenstein)\",\n \"de-LU\": \"German (Luxembourg)\",\n \"de-CH\": \"German (Switzerland)\",\n el: \"Greek\",\n gu: \"Gujurati\",\n ht: \"Haitian\",\n he: \"Hebrew\",\n hi: \"Hindi\",\n hu: \"Hungarian\",\n is: \"Icelandic\",\n id: \"Indonesian\",\n iu: \"Inuktitut\",\n ga: \"Irish\",\n it: \"Italian (Standard)\",\n \"it-CH\": \"Italian (Switzerland)\",\n ja: \"Japanese\",\n kn: \"Kannada\",\n ks: \"Kashmiri\",\n kk: \"Kazakh\",\n km: \"Khmer\",\n ky: \"Kirghiz\",\n tlh: \"Klingon\",\n ko: \"Korean\",\n \"ko-KP\": \"Korean (North Korea)\",\n \"ko-KR\": \"Korean (South Korea)\",\n la: \"Latin\",\n lv: \"Latvian\",\n lt: \"Lithuanian\",\n lb: \"Luxembourgish\",\n mk: \"North Macedonia\",\n ms: \"Malay\",\n ml: \"Malayalam\",\n mt: \"Maltese\",\n mi: \"Maori\",\n mr: \"Marathi\",\n mo: \"Moldavian\",\n nv: \"Navajo\",\n ng: \"Ndonga\",\n ne: \"Nepali\",\n no: \"Norwegian\",\n nb: \"Norwegian (Bokmal)\",\n nn: \"Norwegian (Nynorsk)\",\n oc: \"Occitan\",\n or: \"Oriya\",\n om: \"Oromo\",\n fa: \"Persian\",\n \"fa-IR\": \"Persian/Iran\",\n pl: \"Polish\",\n pt: \"Portuguese\",\n \"pt-BR\": \"Portuguese (Brazil)\",\n pa: \"Punjabi\",\n \"pa-IN\": \"Punjabi (India)\",\n \"pa-PK\": \"Punjabi (Pakistan)\",\n qu: \"Quechua\",\n rm: \"Rhaeto-Romanic\",\n ro: \"Romanian\",\n \"ro-MO\": \"Romanian (Moldavia)\",\n ru: \"Russian\",\n \"ru-MO\": \"Russian (Moldavia)\",\n sz: \"Sami (Lappish)\",\n sg: \"Sango\",\n sa: \"Sanskrit\",\n sc: \"Sardinian\",\n sd: \"Sindhi\",\n si: \"Singhalese\",\n sr: \"Serbian\",\n sk: \"Slovak\",\n sl: \"Slovenian\",\n so: \"Somani\",\n sb: \"Sorbian\",\n es: \"Spanish\",\n \"es-AR\": \"Spanish (Argentina)\",\n \"es-BO\": \"Spanish (Bolivia)\",\n \"es-CL\": \"Spanish (Chile)\",\n \"es-CO\": \"Spanish (Colombia)\",\n \"es-CR\": \"Spanish (Costa Rica)\",\n \"es-DO\": \"Spanish (Dominican Republic)\",\n \"es-EC\": \"Spanish (Ecuador)\",\n \"es-SV\": \"Spanish (El Salvador)\",\n \"es-GT\": \"Spanish (Guatemala)\",\n \"es-HN\": \"Spanish (Honduras)\",\n \"es-MX\": \"Spanish (Mexico)\",\n \"es-NI\": \"Spanish (Nicaragua)\",\n \"es-PA\": \"Spanish (Panama)\",\n \"es-PY\": \"Spanish (Paraguay)\",\n \"es-PE\": \"Spanish (Peru)\",\n \"es-PR\": \"Spanish (Puerto Rico)\",\n \"es-ES\": \"Spanish (Spain)\",\n \"es-UY\": \"Spanish (Uruguay)\",\n \"es-VE\": \"Spanish (Venezuela)\",\n sx: \"Sutu\",\n sw: \"Swahili\",\n sv: \"Swedish\",\n \"sv-FI\": \"Swedish (Finland)\",\n \"sv-SV\": \"Swedish (Sweden)\",\n ta: \"Tamil\",\n tt: \"Tatar\",\n te: \"Teluga\",\n th: \"Thai\",\n tig: \"Tigre\",\n ts: \"Tsonga\",\n tn: \"Tswana\",\n tr: \"Turkish\",\n tk: \"Turkmen\",\n uk: \"Ukrainian\",\n hsb: \"Upper Sorbian\",\n ur: \"Urdu\",\n ve: \"Venda\",\n vi: \"Vietnamese\",\n vo: \"Volapuk\",\n wa: \"Walloon\",\n cy: \"Welsh\",\n xh: \"Xhosa\",\n ji: \"Yiddish\",\n zu: \"Zulu\"\n };\n\n if (this.internal.languageSettings === undefined) {\n this.internal.languageSettings = {};\n this.internal.languageSettings.isSubscribed = false;\n }\n\n if (langCodes[langCode] !== undefined) {\n this.internal.languageSettings.languageCode = langCode;\n if (this.internal.languageSettings.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.write(\n \"/Lang (\" + this.internal.languageSettings.languageCode + \")\"\n );\n });\n this.internal.languageSettings.isSubscribed = true;\n }\n }\n return this;\n };\n})(jsPDF.API);\n","/** @license\n jsPDF standard_fonts_metrics plugin\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * MIT license.\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * This file adds the standard font metrics to jsPDF.\n *\n * Font metrics data is reprocessed derivative of contents of\n * \"Font Metrics for PDF Core 14 Fonts\" package, which exhibits the following copyright and license:\n *\n * Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\n *\n * This file and the 14 PostScript(R) AFM files it accompanies may be used,\n * copied, and distributed for any purpose and without charge, with or without\n * modification, provided that all copyright notices are retained; that the AFM\n * files are not distributed without this file; that all modifications to this\n * file or any of the AFM files are prominently noted in the modified file(s);\n * and that this paragraph is not modified. Adobe Systems has no responsibility\n * or obligation to support the use of the AFM files.\n *\n * @name standard_fonts_metrics\n * @module\n */\n\n(function(API) {\n \"use strict\";\n API.__fontmetrics__ = API.__fontmetrics__ || {};\n\n var decoded = \"0123456789abcdef\",\n encoded = \"klmnopqrstuvwxyz\",\n mappingUncompress = {},\n mappingCompress = {};\n\n for (var i = 0; i < encoded.length; i++) {\n mappingUncompress[encoded[i]] = decoded[i];\n mappingCompress[decoded[i]] = encoded[i];\n }\n\n var hex = function(value) {\n return \"0x\" + parseInt(value, 10).toString(16);\n };\n\n var compress = (API.__fontmetrics__.compress = function(data) {\n var vals = [\"{\"];\n var value, keystring, valuestring, numberprefix;\n\n for (var key in data) {\n value = data[key];\n\n if (!isNaN(parseInt(key, 10))) {\n key = parseInt(key, 10);\n keystring = hex(key).slice(2);\n keystring =\n keystring.slice(0, -1) + mappingCompress[keystring.slice(-1)];\n } else {\n keystring = \"'\" + key + \"'\";\n }\n\n if (typeof value == \"number\") {\n if (value < 0) {\n valuestring = hex(value).slice(3);\n numberprefix = \"-\";\n } else {\n valuestring = hex(value).slice(2);\n numberprefix = \"\";\n }\n valuestring =\n numberprefix +\n valuestring.slice(0, -1) +\n mappingCompress[valuestring.slice(-1)];\n } else {\n if (typeof value === \"object\") {\n valuestring = compress(value);\n } else {\n throw new Error(\n \"Don't know what to do with value type \" + typeof value + \".\"\n );\n }\n }\n vals.push(keystring + valuestring);\n }\n vals.push(\"}\");\n return vals.join(\"\");\n });\n\n /**\n * Uncompresses data compressed into custom, base16-like format.\n *\n * @public\n * @function\n * @param\n * @returns {Type}\n */\n var uncompress = (API.__fontmetrics__.uncompress = function(data) {\n if (typeof data !== \"string\") {\n throw new Error(\"Invalid argument passed to uncompress.\");\n }\n\n var output = {},\n sign = 1,\n stringparts, // undef. will be [] in string mode\n activeobject = output,\n parentchain = [],\n parent_key_pair,\n keyparts = \"\",\n valueparts = \"\",\n key, // undef. will be Truthy when Key is resolved.\n datalen = data.length - 1, // stripping ending }\n ch;\n\n for (var i = 1; i < datalen; i += 1) {\n // - { } ' are special.\n\n ch = data[i];\n\n if (ch == \"'\") {\n if (stringparts) {\n // end of string mode\n key = stringparts.join(\"\");\n stringparts = undefined;\n } else {\n // start of string mode\n stringparts = [];\n }\n } else if (stringparts) {\n stringparts.push(ch);\n } else if (ch == \"{\") {\n // start of object\n parentchain.push([activeobject, key]);\n activeobject = {};\n key = undefined;\n } else if (ch == \"}\") {\n // end of object\n parent_key_pair = parentchain.pop();\n parent_key_pair[0][parent_key_pair[1]] = activeobject;\n key = undefined;\n activeobject = parent_key_pair[0];\n } else if (ch == \"-\") {\n sign = -1;\n } else {\n // must be number\n if (key === undefined) {\n if (mappingUncompress.hasOwnProperty(ch)) {\n keyparts += mappingUncompress[ch];\n key = parseInt(keyparts, 16) * sign;\n sign = +1;\n keyparts = \"\";\n } else {\n keyparts += ch;\n }\n } else {\n if (mappingUncompress.hasOwnProperty(ch)) {\n valueparts += mappingUncompress[ch];\n activeobject[key] = parseInt(valueparts, 16) * sign;\n sign = +1;\n key = undefined;\n valueparts = \"\";\n } else {\n valueparts += ch;\n }\n }\n }\n }\n return output;\n });\n\n // encoding = 'Unicode'\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE. NO clever BOM behavior\n // Actual 16bit char codes used.\n // no multi-byte logic here\n\n // Unicode characters to WinAnsiEncoding:\n // {402: 131, 8211: 150, 8212: 151, 8216: 145, 8217: 146, 8218: 130, 8220: 147, 8221: 148, 8222: 132, 8224: 134, 8225: 135, 8226: 149, 8230: 133, 8364: 128, 8240:137, 8249: 139, 8250: 155, 710: 136, 8482: 153, 338: 140, 339: 156, 732: 152, 352: 138, 353: 154, 376: 159, 381: 142, 382: 158}\n // as you can see, all Unicode chars are outside of 0-255 range. No char code conflicts.\n // this means that you can give Win cp1252 encoded strings to jsPDF for rendering directly\n // as well as give strings with some (supported by these fonts) Unicode characters and\n // these will be mapped to win cp1252\n // for example, you can send char code (cp1252) 0x80 or (unicode) 0x20AC, getting \"Euro\" glyph displayed in both cases.\n\n var encodingBlock = {\n codePages: [\"WinAnsiEncoding\"],\n WinAnsiEncoding: uncompress(\n \"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\"\n )\n };\n var encodings = {\n Unicode: {\n Courier: encodingBlock,\n \"Courier-Bold\": encodingBlock,\n \"Courier-BoldOblique\": encodingBlock,\n \"Courier-Oblique\": encodingBlock,\n Helvetica: encodingBlock,\n \"Helvetica-Bold\": encodingBlock,\n \"Helvetica-BoldOblique\": encodingBlock,\n \"Helvetica-Oblique\": encodingBlock,\n \"Times-Roman\": encodingBlock,\n \"Times-Bold\": encodingBlock,\n \"Times-BoldItalic\": encodingBlock,\n \"Times-Italic\": encodingBlock\n //\t, 'Symbol'\n //\t, 'ZapfDingbats'\n }\n };\n\n var fontMetrics = {\n Unicode: {\n // all sizing numbers are n/fontMetricsFractionOf = one font size unit\n // this means that if fontMetricsFractionOf = 1000, and letter A's width is 476, it's\n // width is 476/1000 or 47.6% of its height (regardless of font size)\n // At this time this value applies to \"widths\" and \"kerning\" numbers.\n\n // char code 0 represents \"default\" (average) width - use it for chars missing in this table.\n // key 'fof' represents the \"fontMetricsFractionOf\" value\n\n \"Courier-Oblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-BoldItalic\": uncompress(\n \"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n \"Helvetica-Bold\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n Courier: uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-BoldOblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-Bold\": uncompress(\n \"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n Symbol: uncompress(\n \"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"\n ),\n Helvetica: uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n ),\n \"Helvetica-BoldOblique\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n ZapfDingbats: uncompress(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-Bold\": uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Times-Italic\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"\n ),\n \"Times-Roman\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"\n ),\n \"Helvetica-Oblique\": uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n )\n }\n };\n\n /*\n\tThis event handler is fired when a new jsPDF object is initialized\n\tThis event handler appends metrics data to standard fonts within\n\tthat jsPDF instance. The metrics are mapped over Unicode character\n\tcodes, NOT CIDs or other codes matching the StandardEncoding table of the\n\tstandard PDF fonts.\n\tFuture:\n\tAlso included is the encoding maping table, converting Unicode (UCS-2, UTF-16)\n\tchar codes to StandardEncoding character codes. The encoding table is to be used\n\tsomewhere around \"pdfEscape\" call.\n\t*/\n API.events.push([\n \"addFont\",\n function(data) {\n var font = data.font;\n\n var metrics = fontMetrics[\"Unicode\"][font.postScriptName];\n if (metrics) {\n font.metadata[\"Unicode\"] = {};\n font.metadata[\"Unicode\"].widths = metrics.widths;\n font.metadata[\"Unicode\"].kerning = metrics.kerning;\n }\n\n var encodingBlock = encodings[\"Unicode\"][font.postScriptName];\n if (encodingBlock) {\n font.metadata[\"Unicode\"].encoding = encodingBlock;\n font.encoding = encodingBlock.codePages[0];\n }\n }\n ]); // end of adding event handler\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob } from \"../libs/AtobBtoa.js\";\n\n/**\n * @name ttfsupport\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n\n var binaryStringToUint8Array = function(binary_string) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n };\n\n var addFont = function(font, file) {\n // eslint-disable-next-line no-control-regex\n if (/^\\x00\\x01\\x00\\x00/.test(file)) {\n file = binaryStringToUint8Array(file);\n } else {\n file = binaryStringToUint8Array(atob(file));\n }\n font.metadata = jsPDF.API.TTFFont.open(file);\n font.metadata.Unicode = font.metadata.Unicode || {\n encoding: {},\n kerning: {},\n widths: []\n };\n font.metadata.glyIdsUsed = [0];\n };\n\n jsPDF.API.events.push([\n \"addFont\",\n function(data) {\n var file = undefined;\n var font = data.font;\n var instance = data.instance;\n if (font.isStandardFont) {\n return;\n }\n if (typeof instance !== \"undefined\") {\n if (instance.existsFileInVFS(font.postScriptName) === false) {\n file = instance.loadFile(font.postScriptName);\n } else {\n file = instance.getFileFromVFS(font.postScriptName);\n }\n if (typeof file !== \"string\") {\n throw new Error(\n \"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n addFont(font, file);\n } else {\n throw new Error(\n \"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n }\n ]); // end of adding event handler\n})(jsPDF);\n","/** @license\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { console } from \"../libs/console.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF SVG plugin\n *\n * @name svg\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadCanvg() {\n return (function() {\n if (globalObject[\"canvg\"]) {\n return Promise.resolve(globalObject[\"canvg\"]);\n }\n\n return import(\"canvg\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load canvg: \" + e));\n })\n .then(function(canvg) {\n return canvg.default ? canvg.default : canvg;\n });\n }\n\n /**\n * Parses SVG XML and saves it as image into the PDF.\n *\n * Depends on canvas-element and canvg\n *\n * @name addSvgAsImage\n * @public\n * @function\n * @param {string} SVG-Data as Text\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width of SVG-Image (in units declared at inception of PDF document)\n * @param {number} height of SVG-Image (in units declared at inception of PDF document)\n * @param {string} alias of SVG-Image (if used multiple times)\n * @param {string} compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation of the image in degrees (0-359)\n *\n * @returns jsPDF jsPDF-instance\n */\n jsPDFAPI.addSvgAsImage = function(\n svg,\n x,\n y,\n w,\n h,\n alias,\n compression,\n rotation\n ) {\n if (isNaN(x) || isNaN(y)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid coordinates\", arguments);\n throw new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");\n }\n\n if (isNaN(w) || isNaN(h)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid measurements\", arguments);\n throw new Error(\n \"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\"\n );\n }\n\n var canvas = document.createElement(\"canvas\");\n canvas.width = w;\n canvas.height = h;\n var ctx = canvas.getContext(\"2d\");\n ctx.fillStyle = \"#fff\"; /// set white fill style\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n var options = {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true\n };\n var doc = this;\n return loadCanvg()\n .then(\n function(canvg) {\n return canvg.fromString(ctx, svg, options);\n },\n function() {\n return Promise.reject(new Error(\"Could not load canvg.\"));\n }\n )\n .then(function(instance) {\n return instance.render(options);\n })\n .then(function() {\n doc.addImage(\n canvas.toDataURL(\"image/jpeg\", 1.0),\n x,\n y,\n w,\n h,\n compression,\n rotation\n );\n });\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF total_pages plugin\n * @name total_pages\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * @name putTotalPages\n * @function\n * @param {string} pageExpression Regular Expression\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.putTotalPages = function(pageExpression) {\n \"use strict\";\n\n var replaceExpression;\n var totalNumberOfPages = 0;\n if (parseInt(this.internal.getFont().id.substr(1), 10) < 15) {\n replaceExpression = new RegExp(pageExpression, \"g\");\n totalNumberOfPages = this.internal.getNumberOfPages();\n } else {\n replaceExpression = new RegExp(\n this.pdfEscape16(pageExpression, this.internal.getFont()),\n \"g\"\n );\n totalNumberOfPages = this.pdfEscape16(\n this.internal.getNumberOfPages() + \"\",\n this.internal.getFont()\n );\n }\n\n for (var n = 1; n <= this.internal.getNumberOfPages(); n++) {\n for (var i = 0; i < this.internal.pages[n].length; i++) {\n this.internal.pages[n][i] = this.internal.pages[n][i].replace(\n replaceExpression,\n totalNumberOfPages\n );\n }\n }\n\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF viewerPreferences Plugin\n * @author Aras Abbasi (github.com/arasabbasi)\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Adds the ability to set ViewerPreferences and by thus\n * controlling the way the document is to be presented on the\n * screen or in print.\n * @name viewerpreferences\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * Set the ViewerPreferences of the generated PDF\n *\n * @name viewerPreferences\n * @function\n * @public\n * @param {Object} options Array with the ViewerPreferences
    \n * Example: doc.viewerPreferences({\"FitWindow\":true});
    \n *
    \n * You can set following preferences:
    \n *
    \n * HideToolbar (boolean)
    \n * Default value: false
    \n *
    \n * HideMenubar (boolean)
    \n * Default value: false.
    \n *
    \n * HideWindowUI (boolean)
    \n * Default value: false.
    \n *
    \n * FitWindow (boolean)
    \n * Default value: false.
    \n *
    \n * CenterWindow (boolean)
    \n * Default value: false
    \n *
    \n * DisplayDocTitle (boolean)
    \n * Default value: false.
    \n *
    \n * NonFullScreenPageMode (string)
    \n * Possible values: UseNone, UseOutlines, UseThumbs, UseOC
    \n * Default value: UseNone
    \n *
    \n * Direction (string)
    \n * Possible values: L2R, R2L
    \n * Default value: L2R.
    \n *
    \n * ViewArea (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox.
    \n *
    \n * ViewClip (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox
    \n *
    \n * PrintArea (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox
    \n *
    \n * PrintClip (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox.
    \n *
    \n * PrintScaling (string)
    \n * Possible values: AppDefault, None
    \n * Default value: AppDefault.
    \n *
    \n * Duplex (string)
    \n * Possible values: Simplex, DuplexFlipLongEdge, DuplexFlipShortEdge\n * Default value: none
    \n *
    \n * PickTrayByPDFSize (boolean)
    \n * Default value: false
    \n *
    \n * PrintPageRange (Array)
    \n * Example: [[1,5], [7,9]]
    \n * Default value: as defined by PDF viewer application
    \n *
    \n * NumCopies (Number)
    \n * Possible values: 1, 2, 3, 4, 5
    \n * Default value: 1
    \n *
    \n * For more information see the PDF Reference, sixth edition on Page 577\n * @param {boolean} doReset True to reset the settings\n * @function\n * @returns jsPDF jsPDF-instance\n * @example\n * var doc = new jsPDF()\n * doc.text('This is a test', 10, 10)\n * doc.viewerPreferences({'FitWindow': true}, true)\n * doc.save(\"viewerPreferences.pdf\")\n *\n * // Example printing 10 copies, using cropbox, and hiding UI.\n * doc.viewerPreferences({\n * 'HideWindowUI': true,\n * 'PrintArea': 'CropBox',\n * 'NumCopies': 10\n * })\n */\n jsPDFAPI.viewerPreferences = function(options, doReset) {\n options = options || {};\n doReset = doReset || false;\n\n var configuration;\n var configurationTemplate = {\n HideToolbar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideMenubar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideWindowUI: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n FitWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n CenterWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n DisplayDocTitle: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.4\n },\n NonFullScreenPageMode: {\n defaultValue: \"UseNone\",\n value: \"UseNone\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"UseNone\", \"UseOutlines\", \"UseThumbs\", \"UseOC\"],\n pdfVersion: 1.3\n },\n Direction: {\n defaultValue: \"L2R\",\n value: \"L2R\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"L2R\", \"R2L\"],\n pdfVersion: 1.3\n },\n ViewArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n ViewClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintScaling: {\n defaultValue: \"AppDefault\",\n value: \"AppDefault\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"AppDefault\", \"None\"],\n pdfVersion: 1.6\n },\n Duplex: {\n defaultValue: \"\",\n value: \"none\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\n \"Simplex\",\n \"DuplexFlipShortEdge\",\n \"DuplexFlipLongEdge\",\n \"none\"\n ],\n pdfVersion: 1.7\n },\n PickTrayByPDFSize: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.7\n },\n PrintPageRange: {\n defaultValue: \"\",\n value: \"\",\n type: \"array\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n },\n NumCopies: {\n defaultValue: 1,\n value: 1,\n type: \"integer\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n }\n };\n\n var configurationKeys = Object.keys(configurationTemplate);\n\n var rangeArray = [];\n var i = 0;\n var j = 0;\n var k = 0;\n var isValid;\n\n var method;\n var value;\n\n function arrayContainsElement(array, element) {\n var iterator;\n var result = false;\n\n for (iterator = 0; iterator < array.length; iterator += 1) {\n if (array[iterator] === element) {\n result = true;\n }\n }\n return result;\n }\n\n if (this.internal.viewerpreferences === undefined) {\n this.internal.viewerpreferences = {};\n this.internal.viewerpreferences.configuration = JSON.parse(\n JSON.stringify(configurationTemplate)\n );\n this.internal.viewerpreferences.isSubscribed = false;\n }\n configuration = this.internal.viewerpreferences.configuration;\n\n if (options === \"reset\" || doReset === true) {\n var len = configurationKeys.length;\n\n for (k = 0; k < len; k += 1) {\n configuration[configurationKeys[k]].value =\n configuration[configurationKeys[k]].defaultValue;\n configuration[configurationKeys[k]].explicitSet = false;\n }\n }\n\n if (typeof options === \"object\") {\n for (method in options) {\n value = options[method];\n if (\n arrayContainsElement(configurationKeys, method) &&\n value !== undefined\n ) {\n if (\n configuration[method].type === \"boolean\" &&\n typeof value === \"boolean\"\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"name\" &&\n arrayContainsElement(configuration[method].valueSet, value)\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"integer\" &&\n Number.isInteger(value)\n ) {\n configuration[method].value = value;\n } else if (configuration[method].type === \"array\") {\n for (i = 0; i < value.length; i += 1) {\n isValid = true;\n if (value[i].length === 1 && typeof value[i][0] === \"number\") {\n rangeArray.push(String(value[i] - 1));\n } else if (value[i].length > 1) {\n for (j = 0; j < value[i].length; j += 1) {\n if (typeof value[i][j] !== \"number\") {\n isValid = false;\n }\n }\n if (isValid === true) {\n rangeArray.push([value[i][0] - 1, value[i][1] - 1].join(\" \"));\n }\n }\n }\n configuration[method].value = \"[\" + rangeArray.join(\" \") + \"]\";\n } else {\n configuration[method].value = configuration[method].defaultValue;\n }\n\n configuration[method].explicitSet = true;\n }\n }\n }\n\n if (this.internal.viewerpreferences.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n var pdfDict = [];\n var vPref;\n for (vPref in configuration) {\n if (configuration[vPref].explicitSet === true) {\n if (configuration[vPref].type === \"name\") {\n pdfDict.push(\"/\" + vPref + \" /\" + configuration[vPref].value);\n } else {\n pdfDict.push(\"/\" + vPref + \" \" + configuration[vPref].value);\n }\n }\n }\n if (pdfDict.length !== 0) {\n this.internal.write(\n \"/ViewerPreferences\\n<<\\n\" + pdfDict.join(\"\\n\") + \"\\n>>\"\n );\n }\n });\n this.internal.viewerpreferences.isSubscribed = true;\n }\n\n this.internal.viewerpreferences.configuration = configuration;\n return this;\n };\n})(jsPDF.API);\n","/** ====================================================================\n * @license\n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name xmp_metadata\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var postPutResources = function() {\n var xmpmeta_beginning = '';\n var rdf_beginning =\n '';\n var rdf_ending = \"\";\n var xmpmeta_ending = \"\";\n var utf8_xmpmeta_beginning = unescape(\n encodeURIComponent(xmpmeta_beginning)\n );\n var utf8_rdf_beginning = unescape(encodeURIComponent(rdf_beginning));\n var utf8_metadata = unescape(\n encodeURIComponent(this.internal.__metadata__.metadata)\n );\n var utf8_rdf_ending = unescape(encodeURIComponent(rdf_ending));\n var utf8_xmpmeta_ending = unescape(encodeURIComponent(xmpmeta_ending));\n\n var total_len =\n utf8_rdf_beginning.length +\n utf8_metadata.length +\n utf8_rdf_ending.length +\n utf8_xmpmeta_beginning.length +\n utf8_xmpmeta_ending.length;\n\n this.internal.__metadata__.metadata_object_number = this.internal.newObject();\n this.internal.write(\n \"<< /Type /Metadata /Subtype /XML /Length \" + total_len + \" >>\"\n );\n this.internal.write(\"stream\");\n this.internal.write(\n utf8_xmpmeta_beginning +\n utf8_rdf_beginning +\n utf8_metadata +\n utf8_rdf_ending +\n utf8_xmpmeta_ending\n );\n this.internal.write(\"endstream\");\n this.internal.write(\"endobj\");\n };\n\n var putCatalog = function() {\n if (this.internal.__metadata__.metadata_object_number) {\n this.internal.write(\n \"/Metadata \" +\n this.internal.__metadata__.metadata_object_number +\n \" 0 R\"\n );\n }\n };\n\n /**\n * Adds XMP formatted metadata to PDF\n *\n * @name addMetadata\n * @function\n * @param {String} metadata The actual metadata to be added. The metadata shall be stored as XMP simple value. Note that if the metadata string contains XML markup characters \"<\", \">\" or \"&\", those characters should be written using XML entities.\n * @param {String} namespaceuri Sets the namespace URI for the metadata. Last character should be slash or hash.\n * @returns {jsPDF} jsPDF-instance\n */\n jsPDFAPI.addMetadata = function(metadata, namespaceuri) {\n if (typeof this.internal.__metadata__ === \"undefined\") {\n this.internal.__metadata__ = {\n metadata: metadata,\n namespaceuri: namespaceuri || \"http://jspdf.default.namespaceuri/\"\n };\n this.internal.events.subscribe(\"putCatalog\", putCatalog);\n\n this.internal.events.subscribe(\"postPutResources\", postPutResources);\n }\n return this;\n };\n})(jsPDF.API);\n","import { jsPDF } from \"../jspdf.js\";\nimport { toPDFName } from \"../libs/pdfname.js\";\n\n/**\n * @name utf8\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n var jsPDFAPI = jsPDF.API;\n\n /***************************************************************************************************/\n /* function : pdfEscape16 */\n /* comment : The character id of a 2-byte string is converted to a hexadecimal number by obtaining */\n /* the corresponding glyph id and width, and then adding padding to the string. */\n /***************************************************************************************************/\n var pdfEscape16 = (jsPDFAPI.pdfEscape16 = function(text, font) {\n var widths = font.metadata.Unicode.widths;\n var padz = [\"\", \"0\", \"00\", \"000\", \"0000\"];\n var ar = [\"\"];\n for (var i = 0, l = text.length, t; i < l; ++i) {\n t = font.metadata.characterToGlyph(text.charCodeAt(i));\n font.metadata.glyIdsUsed.push(t);\n font.metadata.toUnicode[t] = text.charCodeAt(i);\n if (widths.indexOf(t) == -1) {\n widths.push(t);\n widths.push([parseInt(font.metadata.widthOfGlyph(t), 10)]);\n }\n if (t == \"0\") {\n //Spaces are not allowed in cmap.\n return ar.join(\"\");\n } else {\n t = t.toString(16);\n ar.push(padz[4 - t.length], t);\n }\n }\n return ar.join(\"\");\n });\n\n var toUnicodeCmap = function(map) {\n var code, codes, range, unicode, unicodeMap, _i, _len;\n unicodeMap =\n \"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n /Registry (Adobe)\\n /Ordering (UCS)\\n /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000>\\nendcodespacerange\";\n codes = Object.keys(map).sort(function(a, b) {\n return a - b;\n });\n\n range = [];\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (range.length >= 100) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\";\n range = [];\n }\n\n if (\n map[code] !== undefined &&\n map[code] !== null &&\n typeof map[code].toString === \"function\"\n ) {\n unicode = (\"0000\" + map[code].toString(16)).slice(-4);\n code = (\"0000\" + (+code).toString(16)).slice(-4);\n range.push(\"<\" + code + \"><\" + unicode + \">\");\n }\n }\n\n if (range.length) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\\n\";\n }\n unicodeMap +=\n \"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\";\n return unicodeMap;\n };\n\n var identityHFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"Identity-H\"\n ) {\n //Tag with Identity-H\n var widths = font.metadata.Unicode.widths;\n var data = font.metadata.subset.encode(font.metadata.glyIdsUsed, 1);\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Type /FontDescriptor\");\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/Flags \" + font.metadata.flags);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\">>\");\n out(\"endobj\");\n\n var DescendantFont = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/FontDescriptor \" + fontDescriptor + \" 0 R\");\n out(\"/W \" + jsPDF.API.PDFObject.convert(widths));\n out(\"/CIDToGIDMap /Identity\");\n out(\"/DW 1000\");\n out(\"/Subtype /CIDFontType2\");\n out(\"/CIDSystemInfo\");\n out(\"<<\");\n out(\"/Supplement 0\");\n out(\"/Registry (Adobe)\");\n out(\"/Ordering (\" + font.encoding + \")\");\n out(\">>\");\n out(\">>\");\n out(\"endobj\");\n\n font.objectNumber = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/Subtype /Type0\");\n out(\"/ToUnicode \" + cmap + \" 0 R\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/Encoding /\" + font.encoding);\n out(\"/DescendantFonts [\" + DescendantFont + \" 0 R]\");\n out(\">>\");\n out(\"endobj\");\n\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n identityHFunction(args);\n }\n ]);\n\n var winAnsiEncodingFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"WinAnsiEncoding\"\n ) {\n //Tag with WinAnsi encoding\n var data = font.metadata.rawData;\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/Type /FontDescriptor\");\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/Flags 96\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\">>\");\n out(\"endobj\");\n font.objectNumber = newObject();\n for (var j = 0; j < font.metadata.hmtx.widths.length; j++) {\n font.metadata.hmtx.widths[j] = parseInt(\n font.metadata.hmtx.widths[j] * (1000 / font.metadata.head.unitsPerEm)\n ); //Change the width of Em units to Point units.\n }\n out(\n \"<>\"\n );\n out(\"endobj\");\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n winAnsiEncodingFunction(args);\n }\n ]);\n\n var utf8TextFunction = function(args) {\n var text = args.text || \"\";\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n\n var pdfEscape = mutex.pdfEscape;\n var activeFontKey = mutex.activeFontKey;\n var fonts = mutex.fonts;\n var key = activeFontKey;\n\n var str = \"\",\n s = 0,\n cmapConfirm;\n var strText = \"\";\n var encoding = fonts[key].encoding;\n\n if (fonts[key].encoding !== \"Identity-H\") {\n return {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n }\n strText = text;\n\n key = activeFontKey;\n if (Array.isArray(text)) {\n strText = text[0];\n }\n for (s = 0; s < strText.length; s += 1) {\n if (fonts[key].metadata.hasOwnProperty(\"cmap\")) {\n cmapConfirm =\n fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)];\n /*\n if (Object.prototype.toString.call(text) === '[object Array]') {\n var i = 0;\n // for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[s]) === '[object Array]') {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s][0].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n } else {\n\n }\n //}\n\n } else {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n }*/\n }\n if (!cmapConfirm) {\n if (\n strText[s].charCodeAt(0) < 256 &&\n fonts[key].metadata.hasOwnProperty(\"Unicode\")\n ) {\n str += strText[s];\n } else {\n str += \"\";\n }\n } else {\n str += strText[s];\n }\n }\n var result = \"\";\n if (parseInt(key.slice(1)) < 14 || encoding === \"WinAnsiEncoding\") {\n //For the default 13 font\n result = pdfEscape(str, key)\n .split(\"\")\n .map(function(cv) {\n return cv.charCodeAt(0).toString(16);\n })\n .join(\"\");\n } else if (encoding === \"Identity-H\") {\n result = pdfEscape16(str, fonts[key]);\n }\n mutex.isHex = true;\n\n return {\n text: result,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n };\n\n var utf8EscapeFunction = function(parms) {\n var text = parms.text || \"\",\n x = parms.x,\n y = parms.y,\n options = parms.options,\n mutex = parms.mutex;\n var tmpText = [];\n var args = {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n\n if (Array.isArray(text)) {\n var i = 0;\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n if (text[i].length === 3) {\n tmpText.push([\n utf8TextFunction(Object.assign({}, args, { text: text[i][0] }))\n .text,\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n }\n parms.text = tmpText;\n } else {\n parms.text = utf8TextFunction(\n Object.assign({}, args, { text: text })\n ).text;\n }\n };\n\n jsPDFAPI.events.push([\"postProcessText\", utf8EscapeFunction]);\n})(jsPDF);\n","/**\n * @license\n * jsPDF virtual FileSystem functionality\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Use the vFS to handle files\n *\n * @name vFS\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var _initializeVFS = function() {\n if (typeof this.internal.vFS === \"undefined\") {\n this.internal.vFS = {};\n }\n return true;\n };\n\n /**\n * Check if the file exists in the vFS\n *\n * @name existsFileInVFS\n * @function\n * @param {string} Possible filename in the vFS.\n * @returns {boolean}\n * @example\n * doc.existsFileInVFS(\"someFile.txt\");\n */\n jsPDFAPI.existsFileInVFS = function(filename) {\n _initializeVFS.call(this);\n return typeof this.internal.vFS[filename] !== \"undefined\";\n };\n\n /**\n * Add a file to the vFS\n *\n * @name addFileToVFS\n * @function\n * @param {string} filename The name of the file which should be added.\n * @param {string} filecontent The content of the file.\n * @returns {jsPDF}\n * @example\n * doc.addFileToVFS(\"someFile.txt\", \"BADFACE1\");\n */\n jsPDFAPI.addFileToVFS = function(filename, filecontent) {\n _initializeVFS.call(this);\n this.internal.vFS[filename] = filecontent;\n return this;\n };\n\n /**\n * Get the file from the vFS\n *\n * @name getFileFromVFS\n * @function\n * @param {string} The name of the file which gets requested.\n * @returns {string}\n * @example\n * doc.getFileFromVFS(\"someFile.txt\");\n */\n jsPDFAPI.getFileFromVFS = function(filename) {\n _initializeVFS.call(this);\n\n if (typeof this.internal.vFS[filename] !== \"undefined\") {\n return this.internal.vFS[filename];\n }\n return null;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)\n * MIT License\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDF) {\n \"use strict\";\n /**\n * Table of Unicode types.\n *\n * Generated by:\n *\n * var bidi = require(\"./bidi/index\");\n * var bidi_accumulate = bidi.slice(0, 256).concat(bidi.slice(0x0500, 0x0500 + 256 * 3)).\n * concat(bidi.slice(0x2000, 0x2000 + 256)).concat(bidi.slice(0xFB00, 0xFB00 + 256)).\n * concat(bidi.slice(0xFE00, 0xFE00 + 2 * 256));\n *\n * for( var i = 0; i < bidi_accumulate.length; i++) {\n * \tif(bidi_accumulate[i] === undefined || bidi_accumulate[i] === 'ON')\n * \t\tbidi_accumulate[i] = 'N'; //mark as neutral to conserve space and substitute undefined\n * }\n * var bidiAccumulateStr = 'return [ \"' + bidi_accumulate.toString().replace(/,/g, '\", \"') + '\" ];';\n * require(\"fs\").writeFile('unicode-types.js', bidiAccumulateStr);\n *\n * Based on:\n * https://github.com/mathiasbynens/unicode-8.0.0\n */\n var bidiUnicodeTypes = [\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"S\",\n \"B\",\n \"S\",\n \"WS\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"B\",\n \"B\",\n \"S\",\n \"WS\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"CS\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"EN\",\n \"EN\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"N\",\n \"N\",\n \"AL\",\n \"ET\",\n \"ET\",\n \"AL\",\n \"CS\",\n \"AL\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"ET\",\n \"AN\",\n \"AN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"L\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"B\",\n \"LRE\",\n \"RLE\",\n \"PDF\",\n \"LRO\",\n \"RLO\",\n \"CS\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"N\",\n \"LRI\",\n \"RLI\",\n \"FSI\",\n \"PDI\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"NSM\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"ES\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"N\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\"\n ];\n\n /**\n * Unicode Bidi algorithm compliant Bidi engine.\n * For reference see http://unicode.org/reports/tr9/\n */\n\n /**\n * constructor ( options )\n *\n * Initializes Bidi engine\n *\n * @param {Object} See 'setOptions' below for detailed description.\n * options are cashed between invocation of 'doBidiReorder' method\n *\n * sample usage pattern of BidiEngine:\n * var opt = {\n * \tisInputVisual: true,\n * \tisInputRtl: false,\n * \tisOutputVisual: false,\n * \tisOutputRtl: false,\n * \tisSymmetricSwapping: true\n * }\n * var sourceToTarget = [], levels = [];\n * var bidiEng = Globalize.bidiEngine(opt);\n * var src = \"text string to be reordered\";\n * var ret = bidiEng.doBidiReorder(src, sourceToTarget, levels);\n */\n\n jsPDF.__bidiEngine__ = jsPDF.prototype.__bidiEngine__ = function(options) {\n var _UNICODE_TYPES = _bidiUnicodeTypes;\n\n var _STATE_TABLE_LTR = [\n [0, 3, 0, 1, 0, 0, 0],\n [0, 3, 0, 1, 2, 2, 0],\n [0, 3, 0, 0x11, 2, 0, 1],\n [0, 3, 5, 5, 4, 1, 0],\n [0, 3, 0x15, 0x15, 4, 0, 1],\n [0, 3, 5, 5, 4, 2, 0]\n ];\n\n var _STATE_TABLE_RTL = [\n [2, 0, 1, 1, 0, 1, 0],\n [2, 0, 1, 1, 0, 2, 0],\n [2, 0, 2, 1, 3, 2, 0],\n [2, 0, 2, 0x21, 3, 1, 1]\n ];\n\n var _TYPE_NAMES_MAP = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 };\n\n var _UNICODE_RANGES_MAP = {\n 0: 0,\n 5: 1,\n 6: 2,\n 7: 3,\n 0x20: 4,\n 0xfb: 5,\n 0xfe: 6,\n 0xff: 7\n };\n\n var _SWAP_TABLE = [\n \"\\u0028\",\n \"\\u0029\",\n \"\\u0028\",\n \"\\u003C\",\n \"\\u003E\",\n \"\\u003C\",\n \"\\u005B\",\n \"\\u005D\",\n \"\\u005B\",\n \"\\u007B\",\n \"\\u007D\",\n \"\\u007B\",\n \"\\u00AB\",\n \"\\u00BB\",\n \"\\u00AB\",\n \"\\u2039\",\n \"\\u203A\",\n \"\\u2039\",\n \"\\u2045\",\n \"\\u2046\",\n \"\\u2045\",\n \"\\u207D\",\n \"\\u207E\",\n \"\\u207D\",\n \"\\u208D\",\n \"\\u208E\",\n \"\\u208D\",\n \"\\u2264\",\n \"\\u2265\",\n \"\\u2264\",\n \"\\u2329\",\n \"\\u232A\",\n \"\\u2329\",\n \"\\uFE59\",\n \"\\uFE5A\",\n \"\\uFE59\",\n \"\\uFE5B\",\n \"\\uFE5C\",\n \"\\uFE5B\",\n \"\\uFE5D\",\n \"\\uFE5E\",\n \"\\uFE5D\",\n \"\\uFE64\",\n \"\\uFE65\",\n \"\\uFE64\"\n ];\n\n var _LTR_RANGES_REG_EXPR = new RegExp(\n /^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/\n );\n\n var _lastArabic = false,\n _hasUbatAl,\n _hasUbatB,\n _hasUbatS,\n DIR_LTR = 0,\n DIR_RTL = 1,\n _isInVisual,\n _isInRtl,\n _isOutVisual,\n _isOutRtl,\n _isSymmetricSwapping,\n _dir = DIR_LTR;\n\n this.__bidiEngine__ = {};\n\n var _init = function(text, sourceToTargetMap) {\n if (sourceToTargetMap) {\n for (var i = 0; i < text.length; i++) {\n sourceToTargetMap[i] = i;\n }\n }\n if (_isInRtl === undefined) {\n _isInRtl = _isContextualDirRtl(text);\n }\n if (_isOutRtl === undefined) {\n _isOutRtl = _isContextualDirRtl(text);\n }\n };\n\n // for reference see 3.2 in http://unicode.org/reports/tr9/\n //\n var _getCharType = function(ch) {\n var charCode = ch.charCodeAt(),\n range = charCode >> 8,\n rangeIdx = _UNICODE_RANGES_MAP[range];\n\n if (rangeIdx !== undefined) {\n return _UNICODE_TYPES[rangeIdx * 256 + (charCode & 0xff)];\n } else if (range === 0xfc || range === 0xfd) {\n return \"AL\";\n } else if (_LTR_RANGES_REG_EXPR.test(range)) {\n //unlikely case\n return \"L\";\n } else if (range === 8) {\n // even less likely\n return \"R\";\n }\n return \"N\"; //undefined type, mark as neutral\n };\n\n var _isContextualDirRtl = function(text) {\n for (var i = 0, charType; i < text.length; i++) {\n charType = _getCharType(text.charAt(i));\n if (charType === \"L\") {\n return false;\n } else if (charType === \"R\") {\n return true;\n }\n }\n return false;\n };\n\n // for reference see 3.3.4 & 3.3.5 in http://unicode.org/reports/tr9/\n //\n var _resolveCharType = function(chars, types, resolvedTypes, index) {\n var cType = types[index],\n wType,\n nType,\n i,\n len;\n switch (cType) {\n case \"L\":\n case \"R\":\n _lastArabic = false;\n break;\n case \"N\":\n case \"AN\":\n break;\n\n case \"EN\":\n if (_lastArabic) {\n cType = \"AN\";\n }\n break;\n\n case \"AL\":\n _lastArabic = true;\n _hasUbatAl = true;\n cType = \"R\";\n break;\n\n case \"WS\":\n cType = \"N\";\n break;\n\n case \"CS\":\n if (\n index < 1 ||\n index + 1 >= types.length ||\n ((wType = resolvedTypes[index - 1]) !== \"EN\" && wType !== \"AN\") ||\n ((nType = types[index + 1]) !== \"EN\" && nType !== \"AN\")\n ) {\n cType = \"N\";\n } else if (_lastArabic) {\n nType = \"AN\";\n }\n cType = nType === wType ? nType : \"N\";\n break;\n\n case \"ES\":\n wType = index > 0 ? resolvedTypes[index - 1] : \"B\";\n cType =\n wType === \"EN\" &&\n index + 1 < types.length &&\n types[index + 1] === \"EN\"\n ? \"EN\"\n : \"N\";\n break;\n\n case \"ET\":\n if (index > 0 && resolvedTypes[index - 1] === \"EN\") {\n cType = \"EN\";\n break;\n } else if (_lastArabic) {\n cType = \"N\";\n break;\n }\n i = index + 1;\n len = types.length;\n while (i < len && types[i] === \"ET\") {\n i++;\n }\n if (i < len && types[i] === \"EN\") {\n cType = \"EN\";\n } else {\n cType = \"N\";\n }\n break;\n\n case \"NSM\":\n if (_isInVisual && !_isInRtl) {\n //V->L\n len = types.length;\n i = index + 1;\n while (i < len && types[i] === \"NSM\") {\n i++;\n }\n if (i < len) {\n var c = chars[index];\n var rtlCandidate = (c >= 0x0591 && c <= 0x08ff) || c === 0xfb1e;\n wType = types[i];\n if (rtlCandidate && (wType === \"R\" || wType === \"AL\")) {\n cType = \"R\";\n break;\n }\n }\n }\n if (index < 1 || (wType = types[index - 1]) === \"B\") {\n cType = \"N\";\n } else {\n cType = resolvedTypes[index - 1];\n }\n break;\n\n case \"B\":\n _lastArabic = false;\n _hasUbatB = true;\n cType = _dir;\n break;\n\n case \"S\":\n _hasUbatS = true;\n cType = \"N\";\n break;\n\n case \"LRE\":\n case \"RLE\":\n case \"LRO\":\n case \"RLO\":\n case \"PDF\":\n _lastArabic = false;\n break;\n case \"BN\":\n cType = \"N\";\n break;\n }\n return cType;\n };\n\n var _handleUbatS = function(types, levels, length) {\n for (var i = 0; i < length; i++) {\n if (types[i] === \"S\") {\n levels[i] = _dir;\n for (var j = i - 1; j >= 0; j--) {\n if (types[j] === \"WS\") {\n levels[j] = _dir;\n } else {\n break;\n }\n }\n }\n }\n };\n\n var _invertString = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\");\n if (levels) {\n _computeLevels(charArray, levels, { hiLevel: _dir });\n }\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return charArray.join(\"\");\n };\n\n // For reference see 3.3 in http://unicode.org/reports/tr9/\n //\n var _computeLevels = function(chars, levels, params) {\n var action,\n condition,\n i,\n index,\n newLevel,\n prevState,\n condPos = -1,\n len = chars.length,\n newState = 0,\n resolvedTypes = [],\n stateTable = _dir ? _STATE_TABLE_RTL : _STATE_TABLE_LTR,\n types = [];\n\n _lastArabic = false;\n _hasUbatAl = false;\n _hasUbatB = false;\n _hasUbatS = false;\n for (i = 0; i < len; i++) {\n types[i] = _getCharType(chars[i]);\n }\n for (index = 0; index < len; index++) {\n prevState = newState;\n resolvedTypes[index] = _resolveCharType(\n chars,\n types,\n resolvedTypes,\n index\n );\n newState = stateTable[prevState][_TYPE_NAMES_MAP[resolvedTypes[index]]];\n action = newState & 0xf0;\n newState &= 0x0f;\n levels[index] = newLevel = stateTable[newState][5];\n if (action > 0) {\n if (action === 0x10) {\n for (i = condPos; i < index; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n } else {\n condPos = -1;\n }\n }\n condition = stateTable[newState][6];\n if (condition) {\n if (condPos === -1) {\n condPos = index;\n }\n } else {\n if (condPos > -1) {\n for (i = condPos; i < index; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (types[index] === \"B\") {\n levels[index] = 0;\n }\n params.hiLevel |= newLevel;\n }\n if (_hasUbatS) {\n _handleUbatS(types, levels, len);\n }\n };\n\n // for reference see 3.4 in http://unicode.org/reports/tr9/\n //\n var _invertByLevel = function(\n level,\n charArray,\n sourceToTargetMap,\n levels,\n params\n ) {\n if (params.hiLevel < level) {\n return;\n }\n if (level === 1 && _dir === DIR_RTL && !_hasUbatB) {\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return;\n }\n var ch,\n high,\n end,\n low,\n len = charArray.length,\n start = 0;\n\n while (start < len) {\n if (levels[start] >= level) {\n end = start + 1;\n while (end < len && levels[end] >= level) {\n end++;\n }\n for (low = start, high = end - 1; low < high; low++, high--) {\n ch = charArray[low];\n charArray[low] = charArray[high];\n charArray[high] = ch;\n if (sourceToTargetMap) {\n ch = sourceToTargetMap[low];\n sourceToTargetMap[low] = sourceToTargetMap[high];\n sourceToTargetMap[high] = ch;\n }\n }\n start = end;\n }\n start++;\n }\n };\n\n // for reference see 7 & BD16 in http://unicode.org/reports/tr9/\n //\n var _symmetricSwap = function(charArray, levels, params) {\n if (params.hiLevel !== 0 && _isSymmetricSwapping) {\n for (var i = 0, index; i < charArray.length; i++) {\n if (levels[i] === 1) {\n index = _SWAP_TABLE.indexOf(charArray[i]);\n if (index >= 0) {\n charArray[i] = _SWAP_TABLE[index + 1];\n }\n }\n }\n }\n };\n\n var _reorder = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\"),\n params = { hiLevel: _dir };\n\n if (!levels) {\n levels = [];\n }\n _computeLevels(charArray, levels, params);\n _symmetricSwap(charArray, levels, params);\n _invertByLevel(DIR_RTL + 1, charArray, sourceToTargetMap, levels, params);\n _invertByLevel(DIR_RTL, charArray, sourceToTargetMap, levels, params);\n return charArray.join(\"\");\n };\n\n // doBidiReorder( text, sourceToTargetMap, levels )\n // Performs Bidi reordering by implementing Unicode Bidi algorithm.\n // Returns reordered string\n // @text [String]:\n // - input string to be reordered, this is input parameter\n // $sourceToTargetMap [Array] (optional)\n // - resultant mapping between input and output strings, this is output parameter\n // $levels [Array] (optional)\n // - array of calculated Bidi levels, , this is output parameter\n this.__bidiEngine__.doBidiReorder = function(\n text,\n sourceToTargetMap,\n levels\n ) {\n _init(text, sourceToTargetMap);\n if (!_isInVisual && _isOutVisual && !_isOutRtl) {\n // LLTR->VLTR, LRTL->VLTR\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && _isOutVisual && _isInRtl ^ _isOutRtl) {\n // VRTL->VLTR, VLTR->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _invertString(text, sourceToTargetMap, levels);\n } else if (!_isInVisual && _isOutVisual && _isOutRtl) {\n // LLTR->VRTL, LRTL->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (_isInVisual && !_isInRtl && !_isOutVisual && !_isOutRtl) {\n // VLTR->LLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // VLTR->LRTL, VRTL->LLTR\n text = _invertString(text, sourceToTargetMap);\n if (_isInRtl) {\n //LLTR -> VLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else {\n //LRTL -> VRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n }\n } else if (_isInVisual && _isInRtl && !_isOutVisual && _isOutRtl) {\n // VRTL->LRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (!_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // LRTL->LLTR, LLTR->LRTL\n var isSymmetricSwappingOrig = _isSymmetricSwapping;\n if (_isInRtl) {\n //LRTL->LLTR\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n _dir = DIR_LTR;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n } else {\n //LLTR->LRTL\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n _dir = DIR_RTL;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n text = _invertString(text, sourceToTargetMap);\n }\n }\n return text;\n };\n\n /**\n * @name setOptions( options )\n * @function\n * Sets options for Bidi conversion\n * @param {Object}:\n * - isInputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isInputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong character of input string)\n * - isOutputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isOutputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong characterof input string)\n * - isSymmetricSwapping {boolean} (defaults to false): allowed values true(needs symmetric swapping), false (no need in symmetric swapping),\n */\n this.__bidiEngine__.setOptions = function(options) {\n if (options) {\n _isInVisual = options.isInputVisual;\n _isOutVisual = options.isOutputVisual;\n _isInRtl = options.isInputRtl;\n _isOutRtl = options.isOutputRtl;\n _isSymmetricSwapping = options.isSymmetricSwapping;\n }\n };\n\n this.__bidiEngine__.setOptions(options);\n return this.__bidiEngine__;\n };\n\n var _bidiUnicodeTypes = bidiUnicodeTypes;\n\n var bidiEngine = new jsPDF.__bidiEngine__({ isInputVisual: true });\n\n var bidiEngineFunction = function(args) {\n var text = args.text;\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n var lang = options.lang;\n var tmpText = [];\n\n options.isInputVisual =\n typeof options.isInputVisual === \"boolean\" ? options.isInputVisual : true;\n bidiEngine.setOptions(options);\n\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[i]) === \"[object Array]\") {\n tmpText.push([\n bidiEngine.doBidiReorder(text[i][0]),\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push([bidiEngine.doBidiReorder(text[i])]);\n }\n }\n args.text = tmpText;\n } else {\n args.text = bidiEngine.doBidiReorder(text);\n }\n bidiEngine.setOptions({ isInputVisual: true });\n };\n\n jsPDF.API.events.push([\"postProcessText\", bidiEngineFunction]);\n})(jsPDF);\n","/* eslint-disable no-control-regex */\n/************************************************\n * Title : custom font *\n * Start Data : 2017. 01. 22. *\n * Comment : TEXT API *\n ************************************************/\n\n/******************************\n * jsPDF extension API Design *\n * ****************************/\n\nimport { jsPDF } from \"../jspdf.js\";\n\njsPDF.API.TTFFont = (function() {\n /************************************************************************/\n /* function : open */\n /* comment : Decode the encoded ttf content and create a TTFFont object. */\n /************************************************************************/\n TTFFont.open = function(file) {\n return new TTFFont(file);\n };\n /***************************************************************/\n /* function : TTFFont gernerator */\n /* comment : Decode TTF contents are parsed, Data, */\n /* Subset object is created, and registerTTF function is called.*/\n /***************************************************************/\n function TTFFont(rawData) {\n var data;\n this.rawData = rawData;\n data = this.contents = new Data(rawData);\n this.contents.pos = 4;\n if (data.readString(4) === \"ttcf\") {\n throw new Error(\"TTCF not supported.\");\n } else {\n data.pos = 0;\n this.parse();\n this.subset = new Subset(this);\n this.registerTTF();\n }\n }\n /********************************************************/\n /* function : parse */\n /* comment : TTF Parses the file contents by each table.*/\n /********************************************************/\n TTFFont.prototype.parse = function() {\n this.directory = new Directory(this.contents);\n this.head = new HeadTable(this);\n this.name = new NameTable(this);\n this.cmap = new CmapTable(this);\n this.toUnicode = {};\n this.hhea = new HheaTable(this);\n this.maxp = new MaxpTable(this);\n this.hmtx = new HmtxTable(this);\n this.post = new PostTable(this);\n this.os2 = new OS2Table(this);\n this.loca = new LocaTable(this);\n this.glyf = new GlyfTable(this);\n this.ascender =\n (this.os2.exists && this.os2.ascender) || this.hhea.ascender;\n this.decender =\n (this.os2.exists && this.os2.decender) || this.hhea.decender;\n this.lineGap = (this.os2.exists && this.os2.lineGap) || this.hhea.lineGap;\n return (this.bbox = [\n this.head.xMin,\n this.head.yMin,\n this.head.xMax,\n this.head.yMax\n ]);\n };\n /***************************************************************/\n /* function : registerTTF */\n /* comment : Get the value to assign pdf font descriptors. */\n /***************************************************************/\n TTFFont.prototype.registerTTF = function() {\n var e, hi, low, raw, _ref;\n this.scaleFactor = 1000.0 / this.head.unitsPerEm;\n this.bbox = function() {\n var _i, _len, _ref, _results;\n _ref = this.bbox;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n e = _ref[_i];\n _results.push(Math.round(e * this.scaleFactor));\n }\n return _results;\n }.call(this);\n this.stemV = 0;\n if (this.post.exists) {\n raw = this.post.italic_angle;\n hi = raw >> 16;\n low = raw & 0xff;\n if ((hi & 0x8000) !== 0) {\n hi = -((hi ^ 0xffff) + 1);\n }\n this.italicAngle = +(\"\" + hi + \".\" + low);\n } else {\n this.italicAngle = 0;\n }\n this.ascender = Math.round(this.ascender * this.scaleFactor);\n this.decender = Math.round(this.decender * this.scaleFactor);\n this.lineGap = Math.round(this.lineGap * this.scaleFactor);\n this.capHeight = (this.os2.exists && this.os2.capHeight) || this.ascender;\n this.xHeight = (this.os2.exists && this.os2.xHeight) || 0;\n this.familyClass = ((this.os2.exists && this.os2.familyClass) || 0) >> 8;\n this.isSerif =\n (_ref = this.familyClass) === 1 ||\n _ref === 2 ||\n _ref === 3 ||\n _ref === 4 ||\n _ref === 5 ||\n _ref === 7;\n this.isScript = this.familyClass === 10;\n this.flags = 0;\n if (this.post.isFixedPitch) {\n this.flags |= 1 << 0;\n }\n if (this.isSerif) {\n this.flags |= 1 << 1;\n }\n if (this.isScript) {\n this.flags |= 1 << 3;\n }\n if (this.italicAngle !== 0) {\n this.flags |= 1 << 6;\n }\n this.flags |= 1 << 5;\n if (!this.cmap.unicode) {\n throw new Error(\"No unicode cmap for font\");\n }\n };\n TTFFont.prototype.characterToGlyph = function(character) {\n var _ref;\n return (\n ((_ref = this.cmap.unicode) != null ? _ref.codeMap[character] : void 0) ||\n 0\n );\n };\n TTFFont.prototype.widthOfGlyph = function(glyph) {\n var scale;\n scale = 1000.0 / this.head.unitsPerEm;\n return this.hmtx.forGlyph(glyph).advance * scale;\n };\n TTFFont.prototype.widthOfString = function(string, size, charSpace) {\n var charCode, i, scale, width, _ref;\n string = \"\" + string;\n width = 0;\n for (\n i = 0, _ref = string.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n charCode = string.charCodeAt(i);\n width +=\n this.widthOfGlyph(this.characterToGlyph(charCode)) +\n charSpace * (1000 / size) || 0;\n }\n scale = size / 1000;\n return width * scale;\n };\n TTFFont.prototype.lineHeight = function(size, includeGap) {\n var gap;\n if (includeGap == null) {\n includeGap = false;\n }\n gap = includeGap ? this.lineGap : 0;\n return ((this.ascender + gap - this.decender) / 1000) * size;\n };\n return TTFFont;\n})();\n\n/************************************************************************************************/\n/* function : Data */\n/* comment : The ttf data decoded and stored in an array is read and written to the Data object.*/\n/************************************************************************************************/\nvar Data = (function() {\n function Data(data) {\n this.data = data != null ? data : [];\n this.pos = 0;\n this.length = this.data.length;\n }\n Data.prototype.readByte = function() {\n return this.data[this.pos++];\n };\n Data.prototype.writeByte = function(byte) {\n return (this.data[this.pos++] = byte);\n };\n Data.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.readByte() * 0x1000000;\n b2 = this.readByte() << 16;\n b3 = this.readByte() << 8;\n b4 = this.readByte();\n return b1 + b2 + b3 + b4;\n };\n Data.prototype.writeUInt32 = function(val) {\n this.writeByte((val >>> 24) & 0xff);\n this.writeByte((val >> 16) & 0xff);\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt32 = function() {\n var int;\n int = this.readUInt32();\n if (int >= 0x80000000) {\n return int - 0x100000000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt32 = function(val) {\n if (val < 0) {\n val += 0x100000000;\n }\n return this.writeUInt32(val);\n };\n Data.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.readByte() << 8;\n b2 = this.readByte();\n return b1 | b2;\n };\n Data.prototype.writeUInt16 = function(val) {\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt16 = function() {\n var int;\n int = this.readUInt16();\n if (int >= 0x8000) {\n return int - 0x10000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt16 = function(val) {\n if (val < 0) {\n val += 0x10000;\n }\n return this.writeUInt16(val);\n };\n Data.prototype.readString = function(length) {\n var i, ret;\n ret = [];\n for (\n i = 0;\n 0 <= length ? i < length : i > length;\n i = 0 <= length ? ++i : --i\n ) {\n ret[i] = String.fromCharCode(this.readByte());\n }\n return ret.join(\"\");\n };\n Data.prototype.writeString = function(val) {\n var i, _ref, _results;\n _results = [];\n for (\n i = 0, _ref = val.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n _results.push(this.writeByte(val.charCodeAt(i)));\n }\n return _results;\n };\n /*Data.prototype.stringAt = function (pos, length) {\n this.pos = pos;\n return this.readString(length);\n };*/\n Data.prototype.readShort = function() {\n return this.readInt16();\n };\n Data.prototype.writeShort = function(val) {\n return this.writeInt16(val);\n };\n Data.prototype.readLongLong = function() {\n var b1, b2, b3, b4, b5, b6, b7, b8;\n b1 = this.readByte();\n b2 = this.readByte();\n b3 = this.readByte();\n b4 = this.readByte();\n b5 = this.readByte();\n b6 = this.readByte();\n b7 = this.readByte();\n b8 = this.readByte();\n if (b1 & 0x80) {\n return (\n ((b1 ^ 0xff) * 0x100000000000000 +\n (b2 ^ 0xff) * 0x1000000000000 +\n (b3 ^ 0xff) * 0x10000000000 +\n (b4 ^ 0xff) * 0x100000000 +\n (b5 ^ 0xff) * 0x1000000 +\n (b6 ^ 0xff) * 0x10000 +\n (b7 ^ 0xff) * 0x100 +\n (b8 ^ 0xff) +\n 1) *\n -1\n );\n }\n return (\n b1 * 0x100000000000000 +\n b2 * 0x1000000000000 +\n b3 * 0x10000000000 +\n b4 * 0x100000000 +\n b5 * 0x1000000 +\n b6 * 0x10000 +\n b7 * 0x100 +\n b8\n );\n };\n Data.prototype.writeLongLong = function(val) {\n var high, low;\n high = Math.floor(val / 0x100000000);\n low = val & 0xffffffff;\n this.writeByte((high >> 24) & 0xff);\n this.writeByte((high >> 16) & 0xff);\n this.writeByte((high >> 8) & 0xff);\n this.writeByte(high & 0xff);\n this.writeByte((low >> 24) & 0xff);\n this.writeByte((low >> 16) & 0xff);\n this.writeByte((low >> 8) & 0xff);\n return this.writeByte(low & 0xff);\n };\n Data.prototype.readInt = function() {\n return this.readInt32();\n };\n Data.prototype.writeInt = function(val) {\n return this.writeInt32(val);\n };\n /*Data.prototype.slice = function (start, end) {\n return this.data.slice(start, end);\n };*/\n Data.prototype.read = function(bytes) {\n var buf, i;\n buf = [];\n for (\n i = 0;\n 0 <= bytes ? i < bytes : i > bytes;\n i = 0 <= bytes ? ++i : --i\n ) {\n buf.push(this.readByte());\n }\n return buf;\n };\n Data.prototype.write = function(bytes) {\n var byte, i, _len, _results;\n _results = [];\n for (i = 0, _len = bytes.length; i < _len; i++) {\n byte = bytes[i];\n _results.push(this.writeByte(byte));\n }\n return _results;\n };\n return Data;\n})();\n\nvar Directory = (function() {\n var checksum;\n\n /*****************************************************************************************************/\n /* function : Directory generator */\n /* comment : Initialize the offset, tag, length, and checksum for each table for the font to be used.*/\n /*****************************************************************************************************/\n function Directory(data) {\n var entry, i, _ref;\n this.scalarType = data.readInt();\n this.tableCount = data.readShort();\n this.searchRange = data.readShort();\n this.entrySelector = data.readShort();\n this.rangeShift = data.readShort();\n this.tables = {};\n for (\n i = 0, _ref = this.tableCount;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n entry = {\n tag: data.readString(4),\n checksum: data.readInt(),\n offset: data.readInt(),\n length: data.readInt()\n };\n this.tables[entry.tag] = entry;\n }\n }\n /********************************************************************************************************/\n /* function : encode */\n /* comment : It encodes and stores the font table object and information used for the directory object. */\n /********************************************************************************************************/\n Directory.prototype.encode = function(tables) {\n var adjustment,\n directory,\n directoryLength,\n entrySelector,\n headOffset,\n log2,\n offset,\n rangeShift,\n searchRange,\n sum,\n table,\n tableCount,\n tableData,\n tag;\n tableCount = Object.keys(tables).length;\n log2 = Math.log(2);\n searchRange = Math.floor(Math.log(tableCount) / log2) * 16;\n entrySelector = Math.floor(searchRange / log2);\n rangeShift = tableCount * 16 - searchRange;\n directory = new Data();\n directory.writeInt(this.scalarType);\n directory.writeShort(tableCount);\n directory.writeShort(searchRange);\n directory.writeShort(entrySelector);\n directory.writeShort(rangeShift);\n directoryLength = tableCount * 16;\n offset = directory.pos + directoryLength;\n headOffset = null;\n tableData = [];\n for (tag in tables) {\n table = tables[tag];\n directory.writeString(tag);\n directory.writeInt(checksum(table));\n directory.writeInt(offset);\n directory.writeInt(table.length);\n tableData = tableData.concat(table);\n if (tag === \"head\") {\n headOffset = offset;\n }\n offset += table.length;\n while (offset % 4) {\n tableData.push(0);\n offset++;\n }\n }\n directory.write(tableData);\n sum = checksum(directory.data);\n adjustment = 0xb1b0afba - sum;\n directory.pos = headOffset + 8;\n directory.writeUInt32(adjustment);\n return directory.data;\n };\n /***************************************************************/\n /* function : checksum */\n /* comment : Duplicate the table for the tag. */\n /***************************************************************/\n checksum = function(data) {\n var i, sum, tmp, _ref;\n data = __slice.call(data);\n while (data.length % 4) {\n data.push(0);\n }\n tmp = new Data(data);\n sum = 0;\n for (i = 0, _ref = data.length; i < _ref; i = i += 4) {\n sum += tmp.readUInt32();\n }\n return sum & 0xffffffff;\n };\n return Directory;\n})();\n\nvar Table,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) {\n for (var key in parent) {\n if (__hasProp.call(parent, key)) child[key] = parent[key];\n }\n\n function ctor() {\n this.constructor = child;\n }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n child.__super__ = parent.prototype;\n return child;\n };\n\n/***************************************************************/\n/* function : Table */\n/* comment : Save info for each table, and parse the table. */\n/***************************************************************/\nTable = (function() {\n function Table(file) {\n var info;\n this.file = file;\n info = this.file.directory.tables[this.tag];\n this.exists = !!info;\n if (info) {\n (this.offset = info.offset), (this.length = info.length);\n this.parse(this.file.contents);\n }\n }\n Table.prototype.parse = function() {};\n Table.prototype.encode = function() {};\n Table.prototype.raw = function() {\n if (!this.exists) {\n return null;\n }\n this.file.contents.pos = this.offset;\n return this.file.contents.read(this.length);\n };\n return Table;\n})();\n\nvar HeadTable = (function(_super) {\n __extends(HeadTable, _super);\n\n function HeadTable() {\n return HeadTable.__super__.constructor.apply(this, arguments);\n }\n HeadTable.prototype.tag = \"head\";\n HeadTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.revision = data.readInt();\n this.checkSumAdjustment = data.readInt();\n this.magicNumber = data.readInt();\n this.flags = data.readShort();\n this.unitsPerEm = data.readShort();\n this.created = data.readLongLong();\n this.modified = data.readLongLong();\n this.xMin = data.readShort();\n this.yMin = data.readShort();\n this.xMax = data.readShort();\n this.yMax = data.readShort();\n this.macStyle = data.readShort();\n this.lowestRecPPEM = data.readShort();\n this.fontDirectionHint = data.readShort();\n this.indexToLocFormat = data.readShort();\n return (this.glyphDataFormat = data.readShort());\n };\n HeadTable.prototype.encode = function(indexToLocFormat) {\n var table;\n table = new Data();\n table.writeInt(this.version);\n table.writeInt(this.revision);\n table.writeInt(this.checkSumAdjustment);\n table.writeInt(this.magicNumber);\n table.writeShort(this.flags);\n table.writeShort(this.unitsPerEm);\n table.writeLongLong(this.created);\n table.writeLongLong(this.modified);\n table.writeShort(this.xMin);\n table.writeShort(this.yMin);\n table.writeShort(this.xMax);\n table.writeShort(this.yMax);\n table.writeShort(this.macStyle);\n table.writeShort(this.lowestRecPPEM);\n table.writeShort(this.fontDirectionHint);\n table.writeShort(indexToLocFormat);\n table.writeShort(this.glyphDataFormat);\n return table.data;\n };\n return HeadTable;\n})(Table);\n\n/************************************************************************************/\n/* function : CmapEntry */\n/* comment : Cmap Initializes and encodes object information (required by pdf spec).*/\n/************************************************************************************/\nvar CmapEntry = (function() {\n function CmapEntry(data, offset) {\n var code,\n count,\n endCode,\n glyphId,\n glyphIds,\n i,\n idDelta,\n idRangeOffset,\n index,\n saveOffset,\n segCount,\n segCountX2,\n start,\n startCode,\n tail,\n _j,\n _k,\n _len;\n this.platformID = data.readUInt16();\n this.encodingID = data.readShort();\n this.offset = offset + data.readInt();\n saveOffset = data.pos;\n data.pos = this.offset;\n this.format = data.readUInt16();\n this.length = data.readUInt16();\n this.language = data.readUInt16();\n this.isUnicode =\n (this.platformID === 3 && this.encodingID === 1 && this.format === 4) ||\n (this.platformID === 0 && this.format === 4);\n this.codeMap = {};\n switch (this.format) {\n case 0:\n for (i = 0; i < 256; ++i) {\n this.codeMap[i] = data.readByte();\n }\n break;\n case 4:\n segCountX2 = data.readUInt16();\n segCount = segCountX2 / 2;\n data.pos += 6;\n endCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n data.pos += 2;\n startCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idDelta = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idRangeOffset = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n count = (this.length - data.pos + this.offset) / 2;\n glyphIds = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= count ? _j < count : _j > count;\n i = 0 <= count ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n for (i = _j = 0, _len = endCode.length; _j < _len; i = ++_j) {\n tail = endCode[i];\n start = startCode[i];\n for (\n code = _k = start;\n start <= tail ? _k <= tail : _k >= tail;\n code = start <= tail ? ++_k : --_k\n ) {\n if (idRangeOffset[i] === 0) {\n glyphId = code + idDelta[i];\n } else {\n index = idRangeOffset[i] / 2 + (code - start) - (segCount - i);\n glyphId = glyphIds[index] || 0;\n if (glyphId !== 0) {\n glyphId += idDelta[i];\n }\n }\n this.codeMap[code] = glyphId & 0xffff;\n }\n }\n }\n data.pos = saveOffset;\n }\n CmapEntry.encode = function(charmap, encoding) {\n var charMap,\n code,\n codeMap,\n codes,\n delta,\n deltas,\n diff,\n endCode,\n endCodes,\n entrySelector,\n glyphIDs,\n i,\n id,\n indexes,\n last,\n map,\n nextID,\n offset,\n old,\n rangeOffsets,\n rangeShift,\n searchRange,\n segCount,\n segCountX2,\n startCode,\n startCodes,\n startGlyph,\n subtable,\n _i,\n _j,\n _k,\n _l,\n _len,\n _len1,\n _len2,\n _len3,\n _len4,\n _len5,\n _len6,\n _len7,\n _m,\n _n,\n _name,\n _o,\n _p,\n _q;\n subtable = new Data();\n codes = Object.keys(charmap).sort(function(a, b) {\n return a - b;\n });\n switch (encoding) {\n case \"macroman\":\n id = 0;\n indexes = (function() {\n var _results = [];\n for (i = 0; i < 256; ++i) {\n _results.push(0);\n }\n return _results;\n })();\n map = {\n 0: 0\n };\n codeMap = {};\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (map[(_name = charmap[code])] == null) {\n map[_name] = ++id;\n }\n codeMap[code] = {\n old: charmap[code],\n new: map[charmap[code]]\n };\n indexes[code] = map[charmap[code]];\n }\n subtable.writeUInt16(1);\n subtable.writeUInt16(0);\n subtable.writeUInt32(12);\n subtable.writeUInt16(0);\n subtable.writeUInt16(262);\n subtable.writeUInt16(0);\n subtable.write(indexes);\n return {\n charMap: codeMap,\n subtable: subtable.data,\n maxGlyphID: id + 1\n };\n case \"unicode\":\n startCodes = [];\n endCodes = [];\n nextID = 0;\n map = {};\n charMap = {};\n last = diff = null;\n for (_j = 0, _len1 = codes.length; _j < _len1; _j++) {\n code = codes[_j];\n old = charmap[code];\n if (map[old] == null) {\n map[old] = ++nextID;\n }\n charMap[code] = {\n old: old,\n new: map[old]\n };\n delta = map[old] - code;\n if (last == null || delta !== diff) {\n if (last) {\n endCodes.push(last);\n }\n startCodes.push(code);\n diff = delta;\n }\n last = code;\n }\n if (last) {\n endCodes.push(last);\n }\n endCodes.push(0xffff);\n startCodes.push(0xffff);\n segCount = startCodes.length;\n segCountX2 = segCount * 2;\n searchRange = 2 * Math.pow(Math.log(segCount) / Math.LN2, 2);\n entrySelector = Math.log(searchRange / 2) / Math.LN2;\n rangeShift = 2 * segCount - searchRange;\n deltas = [];\n rangeOffsets = [];\n glyphIDs = [];\n for (i = _k = 0, _len2 = startCodes.length; _k < _len2; i = ++_k) {\n startCode = startCodes[i];\n endCode = endCodes[i];\n if (startCode === 0xffff) {\n deltas.push(0);\n rangeOffsets.push(0);\n break;\n }\n startGlyph = charMap[startCode][\"new\"];\n if (startCode - startGlyph >= 0x8000) {\n deltas.push(0);\n rangeOffsets.push(2 * (glyphIDs.length + segCount - i));\n for (\n code = _l = startCode;\n startCode <= endCode ? _l <= endCode : _l >= endCode;\n code = startCode <= endCode ? ++_l : --_l\n ) {\n glyphIDs.push(charMap[code][\"new\"]);\n }\n } else {\n deltas.push(startGlyph - startCode);\n rangeOffsets.push(0);\n }\n }\n subtable.writeUInt16(3);\n subtable.writeUInt16(1);\n subtable.writeUInt32(12);\n subtable.writeUInt16(4);\n subtable.writeUInt16(16 + segCount * 8 + glyphIDs.length * 2);\n subtable.writeUInt16(0);\n subtable.writeUInt16(segCountX2);\n subtable.writeUInt16(searchRange);\n subtable.writeUInt16(entrySelector);\n subtable.writeUInt16(rangeShift);\n for (_m = 0, _len3 = endCodes.length; _m < _len3; _m++) {\n code = endCodes[_m];\n subtable.writeUInt16(code);\n }\n subtable.writeUInt16(0);\n for (_n = 0, _len4 = startCodes.length; _n < _len4; _n++) {\n code = startCodes[_n];\n subtable.writeUInt16(code);\n }\n for (_o = 0, _len5 = deltas.length; _o < _len5; _o++) {\n delta = deltas[_o];\n subtable.writeUInt16(delta);\n }\n for (_p = 0, _len6 = rangeOffsets.length; _p < _len6; _p++) {\n offset = rangeOffsets[_p];\n subtable.writeUInt16(offset);\n }\n for (_q = 0, _len7 = glyphIDs.length; _q < _len7; _q++) {\n id = glyphIDs[_q];\n subtable.writeUInt16(id);\n }\n return {\n charMap: charMap,\n subtable: subtable.data,\n maxGlyphID: nextID + 1\n };\n }\n };\n return CmapEntry;\n})();\n\nvar CmapTable = (function(_super) {\n __extends(CmapTable, _super);\n\n function CmapTable() {\n return CmapTable.__super__.constructor.apply(this, arguments);\n }\n CmapTable.prototype.tag = \"cmap\";\n CmapTable.prototype.parse = function(data) {\n var entry, i, tableCount;\n data.pos = this.offset;\n this.version = data.readUInt16();\n tableCount = data.readUInt16();\n this.tables = [];\n this.unicode = null;\n for (\n i = 0;\n 0 <= tableCount ? i < tableCount : i > tableCount;\n i = 0 <= tableCount ? ++i : --i\n ) {\n entry = new CmapEntry(data, this.offset);\n this.tables.push(entry);\n if (entry.isUnicode) {\n if (this.unicode == null) {\n this.unicode = entry;\n }\n }\n }\n return true;\n };\n /*************************************************************************/\n /* function : encode */\n /* comment : Encode the cmap table corresponding to the input character. */\n /*************************************************************************/\n CmapTable.encode = function(charmap, encoding) {\n var result, table;\n if (encoding == null) {\n encoding = \"macroman\";\n }\n result = CmapEntry.encode(charmap, encoding);\n table = new Data();\n table.writeUInt16(0);\n table.writeUInt16(1);\n result.table = table.data.concat(result.subtable);\n return result;\n };\n return CmapTable;\n})(Table);\n\nvar HheaTable = (function(_super) {\n __extends(HheaTable, _super);\n\n function HheaTable() {\n return HheaTable.__super__.constructor.apply(this, arguments);\n }\n HheaTable.prototype.tag = \"hhea\";\n HheaTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.ascender = data.readShort();\n this.decender = data.readShort();\n this.lineGap = data.readShort();\n this.advanceWidthMax = data.readShort();\n this.minLeftSideBearing = data.readShort();\n this.minRightSideBearing = data.readShort();\n this.xMaxExtent = data.readShort();\n this.caretSlopeRise = data.readShort();\n this.caretSlopeRun = data.readShort();\n this.caretOffset = data.readShort();\n data.pos += 4 * 2;\n this.metricDataFormat = data.readShort();\n return (this.numberOfMetrics = data.readUInt16());\n };\n /*HheaTable.prototype.encode = function (ids) {\n var i, table, _i, _ref;\n table = new Data;\n table.writeInt(this.version);\n table.writeShort(this.ascender);\n table.writeShort(this.decender);\n table.writeShort(this.lineGap);\n table.writeShort(this.advanceWidthMax);\n table.writeShort(this.minLeftSideBearing);\n table.writeShort(this.minRightSideBearing);\n table.writeShort(this.xMaxExtent);\n table.writeShort(this.caretSlopeRise);\n table.writeShort(this.caretSlopeRun);\n table.writeShort(this.caretOffset);\n for (i = _i = 0, _ref = 4 * 2; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n table.writeByte(0);\n }\n table.writeShort(this.metricDataFormat);\n table.writeUInt16(ids.length);\n return table.data;\n };*/\n return HheaTable;\n})(Table);\n\nvar OS2Table = (function(_super) {\n __extends(OS2Table, _super);\n\n function OS2Table() {\n return OS2Table.__super__.constructor.apply(this, arguments);\n }\n OS2Table.prototype.tag = \"OS/2\";\n OS2Table.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readUInt16();\n this.averageCharWidth = data.readShort();\n this.weightClass = data.readUInt16();\n this.widthClass = data.readUInt16();\n this.type = data.readShort();\n this.ySubscriptXSize = data.readShort();\n this.ySubscriptYSize = data.readShort();\n this.ySubscriptXOffset = data.readShort();\n this.ySubscriptYOffset = data.readShort();\n this.ySuperscriptXSize = data.readShort();\n this.ySuperscriptYSize = data.readShort();\n this.ySuperscriptXOffset = data.readShort();\n this.ySuperscriptYOffset = data.readShort();\n this.yStrikeoutSize = data.readShort();\n this.yStrikeoutPosition = data.readShort();\n this.familyClass = data.readShort();\n this.panose = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 10; ++i) {\n _results.push(data.readByte());\n }\n return _results;\n })();\n this.charRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 4; ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n this.vendorID = data.readString(4);\n this.selection = data.readShort();\n this.firstCharIndex = data.readShort();\n this.lastCharIndex = data.readShort();\n if (this.version > 0) {\n this.ascent = data.readShort();\n this.descent = data.readShort();\n this.lineGap = data.readShort();\n this.winAscent = data.readShort();\n this.winDescent = data.readShort();\n this.codePageRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 2; i = ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n if (this.version > 1) {\n this.xHeight = data.readShort();\n this.capHeight = data.readShort();\n this.defaultChar = data.readShort();\n this.breakChar = data.readShort();\n return (this.maxContext = data.readShort());\n }\n }\n };\n /*OS2Table.prototype.encode = function () {\n return this.raw();\n };*/\n return OS2Table;\n})(Table);\n\nvar PostTable = (function(_super) {\n var POSTSCRIPT_GLYPHS;\n __extends(PostTable, _super);\n\n function PostTable() {\n return PostTable.__super__.constructor.apply(this, arguments);\n }\n PostTable.prototype.tag = \"post\";\n PostTable.prototype.parse = function(data) {\n var length, numberOfGlyphs, _results;\n data.pos = this.offset;\n this.format = data.readInt();\n this.italicAngle = data.readInt();\n this.underlinePosition = data.readShort();\n this.underlineThickness = data.readShort();\n this.isFixedPitch = data.readInt();\n this.minMemType42 = data.readInt();\n this.maxMemType42 = data.readInt();\n this.minMemType1 = data.readInt();\n this.maxMemType1 = data.readInt();\n switch (this.format) {\n case 0x00010000:\n break;\n case 0x00020000:\n numberOfGlyphs = data.readUInt16();\n this.glyphNameIndex = [];\n var i;\n for (\n i = 0;\n 0 <= numberOfGlyphs ? i < numberOfGlyphs : i > numberOfGlyphs;\n i = 0 <= numberOfGlyphs ? ++i : --i\n ) {\n this.glyphNameIndex.push(data.readUInt16());\n }\n this.names = [];\n _results = [];\n while (data.pos < this.offset + this.length) {\n length = data.readByte();\n _results.push(this.names.push(data.readString(length)));\n }\n return _results;\n case 0x00025000:\n numberOfGlyphs = data.readUInt16();\n return (this.offsets = data.read(numberOfGlyphs));\n case 0x00030000:\n break;\n case 0x00040000:\n return (this.map = function() {\n var _j, _ref, _results1;\n _results1 = [];\n for (\n i = _j = 0, _ref = this.file.maxp.numGlyphs;\n 0 <= _ref ? _j < _ref : _j > _ref;\n i = 0 <= _ref ? ++_j : --_j\n ) {\n _results1.push(data.readUInt32());\n }\n return _results1;\n }.call(this));\n }\n };\n /*PostTable.prototype.glyphFor = function (code) {\n var index;\n switch (this.format) {\n case 0x00010000:\n return POSTSCRIPT_GLYPHS[code] || '.notdef';\n case 0x00020000:\n index = this.glyphNameIndex[code];\n if (index <= 257) {\n return POSTSCRIPT_GLYPHS[index];\n }\n else {\n return this.names[index - 258] || '.notdef';\n }\n break;\n case 0x00025000:\n return POSTSCRIPT_GLYPHS[code + this.offsets[code]] || '.notdef';\n case 0x00030000:\n return '.notdef';\n case 0x00040000:\n return this.map[code] || 0xFFFF;\n }\n };*/\n /*PostTable.prototype.encode = function (mapping) {\n var id, index, indexes, position, post, raw, string, strings, table, _i, _j, _k, _len, _len1, _len2;\n if (!this.exists) {\n return null;\n }\n raw = this.raw();\n if (this.format === 0x00030000) {\n return raw;\n }\n table = new Data(raw.slice(0, 32));\n table.writeUInt32(0x00020000);\n table.pos = 32;\n indexes = [];\n strings = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n post = this.glyphFor(id);\n position = POSTSCRIPT_GLYPHS.indexOf(post);\n if (position !== -1) {\n indexes.push(position);\n }\n else {\n indexes.push(257 + strings.length);\n strings.push(post);\n }\n }\n table.writeUInt16(Object.keys(mapping).length);\n for (_j = 0, _len1 = indexes.length; _j < _len1; _j++) {\n index = indexes[_j];\n table.writeUInt16(index);\n }\n for (_k = 0, _len2 = strings.length; _k < _len2; _k++) {\n string = strings[_k];\n table.writeByte(string.length);\n table.writeString(string);\n }\n return table.data;\n };*/\n POSTSCRIPT_GLYPHS = \".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent\\nampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash\\nzero one two three four five six seven eight nine colon semicolon less equal greater\\nquestion at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\\nbracketleft backslash bracketright asciicircum underscore grave\\na b c d e f g h i j k l m n o p q r s t u v w x y z\\nbraceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis\\nUdieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave\\necircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve\\nocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent\\nsterling section bullet paragraph germandbls registered copyright trademark acute\\ndieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu\\npartialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash\\nquestiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft\\nguillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash\\nquotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis\\nfraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered\\nquotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis\\nEgrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute\\nUcircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla\\nhungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth\\neth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior\\nonehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla\\nCacute cacute Ccaron ccaron dcroat\".split(\n /\\s+/g\n );\n return PostTable;\n})(Table);\n\n/*********************************************************************************************************/\n/* function : NameEntry */\n/* comment : Store copyright information, platformID, encodingID, and languageID in the NameEntry object.*/\n/*********************************************************************************************************/\nvar NameEntry = (function() {\n function NameEntry(raw, entry) {\n this.raw = raw;\n this.length = raw.length;\n this.platformID = entry.platformID;\n this.encodingID = entry.encodingID;\n this.languageID = entry.languageID;\n }\n return NameEntry;\n})();\n\nvar NameTable = (function(_super) {\n var subsetTag;\n __extends(NameTable, _super);\n\n function NameTable() {\n return NameTable.__super__.constructor.apply(this, arguments);\n }\n NameTable.prototype.tag = \"name\";\n NameTable.prototype.parse = function(data) {\n var count,\n entries,\n entry,\n i,\n name,\n stringOffset,\n strings,\n text,\n _j,\n _len,\n _name;\n data.pos = this.offset;\n data.readShort(); //format\n count = data.readShort();\n stringOffset = data.readShort();\n entries = [];\n for (\n i = 0;\n 0 <= count ? i < count : i > count;\n i = 0 <= count ? ++i : --i\n ) {\n entries.push({\n platformID: data.readShort(),\n encodingID: data.readShort(),\n languageID: data.readShort(),\n nameID: data.readShort(),\n length: data.readShort(),\n offset: this.offset + stringOffset + data.readShort()\n });\n }\n strings = {};\n for (i = _j = 0, _len = entries.length; _j < _len; i = ++_j) {\n entry = entries[i];\n data.pos = entry.offset;\n text = data.readString(entry.length);\n name = new NameEntry(text, entry);\n if (strings[(_name = entry.nameID)] == null) {\n strings[_name] = [];\n }\n strings[entry.nameID].push(name);\n }\n this.strings = strings;\n this.copyright = strings[0];\n this.fontFamily = strings[1];\n this.fontSubfamily = strings[2];\n this.uniqueSubfamily = strings[3];\n this.fontName = strings[4];\n this.version = strings[5];\n try {\n this.postscriptName = strings[6][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n } catch (e) {\n this.postscriptName = strings[4][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n }\n this.trademark = strings[7];\n this.manufacturer = strings[8];\n this.designer = strings[9];\n this.description = strings[10];\n this.vendorUrl = strings[11];\n this.designerUrl = strings[12];\n this.license = strings[13];\n this.licenseUrl = strings[14];\n this.preferredFamily = strings[15];\n this.preferredSubfamily = strings[17];\n this.compatibleFull = strings[18];\n return (this.sampleText = strings[19]);\n };\n subsetTag = \"AAAAAA\";\n /*NameTable.prototype.encode = function () {\n var id, list, nameID, nameTable, postscriptName, strCount, strTable, string, strings, table, val, _i, _len, _ref;\n strings = {};\n _ref = this.strings;\n for (id in _ref) {\n val = _ref[id];\n strings[id] = val;\n }\n postscriptName = new NameEntry(\"\" + subsetTag + \"+\" + this.postscriptName, {\n platformID: 1\n , encodingID: 0\n , languageID: 0\n });\n strings[6] = [postscriptName];\n subsetTag = successorOf(subsetTag);\n strCount = 0;\n for (id in strings) {\n list = strings[id];\n if (list != null) {\n strCount += list.length;\n }\n }\n table = new Data;\n strTable = new Data;\n table.writeShort(0);\n table.writeShort(strCount);\n table.writeShort(6 + 12 * strCount);\n for (nameID in strings) {\n list = strings[nameID];\n if (list != null) {\n for (_i = 0, _len = list.length; _i < _len; _i++) {\n string = list[_i];\n table.writeShort(string.platformID);\n table.writeShort(string.encodingID);\n table.writeShort(string.languageID);\n table.writeShort(nameID);\n table.writeShort(string.length);\n table.writeShort(strTable.pos);\n strTable.writeString(string.raw);\n }\n }\n }\n return nameTable = {\n postscriptName: postscriptName.raw\n , table: table.data.concat(strTable.data)\n };\n };*/\n return NameTable;\n})(Table);\n\nvar MaxpTable = (function(_super) {\n __extends(MaxpTable, _super);\n\n function MaxpTable() {\n return MaxpTable.__super__.constructor.apply(this, arguments);\n }\n MaxpTable.prototype.tag = \"maxp\";\n MaxpTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.numGlyphs = data.readUInt16();\n this.maxPoints = data.readUInt16();\n this.maxContours = data.readUInt16();\n this.maxCompositePoints = data.readUInt16();\n this.maxComponentContours = data.readUInt16();\n this.maxZones = data.readUInt16();\n this.maxTwilightPoints = data.readUInt16();\n this.maxStorage = data.readUInt16();\n this.maxFunctionDefs = data.readUInt16();\n this.maxInstructionDefs = data.readUInt16();\n this.maxStackElements = data.readUInt16();\n this.maxSizeOfInstructions = data.readUInt16();\n this.maxComponentElements = data.readUInt16();\n return (this.maxComponentDepth = data.readUInt16());\n };\n /*MaxpTable.prototype.encode = function (ids) {\n var table;\n table = new Data;\n table.writeInt(this.version);\n table.writeUInt16(ids.length);\n table.writeUInt16(this.maxPoints);\n table.writeUInt16(this.maxContours);\n table.writeUInt16(this.maxCompositePoints);\n table.writeUInt16(this.maxComponentContours);\n table.writeUInt16(this.maxZones);\n table.writeUInt16(this.maxTwilightPoints);\n table.writeUInt16(this.maxStorage);\n table.writeUInt16(this.maxFunctionDefs);\n table.writeUInt16(this.maxInstructionDefs);\n table.writeUInt16(this.maxStackElements);\n table.writeUInt16(this.maxSizeOfInstructions);\n table.writeUInt16(this.maxComponentElements);\n table.writeUInt16(this.maxComponentDepth);\n return table.data;\n };*/\n return MaxpTable;\n})(Table);\n\nvar HmtxTable = (function(_super) {\n __extends(HmtxTable, _super);\n\n function HmtxTable() {\n return HmtxTable.__super__.constructor.apply(this, arguments);\n }\n HmtxTable.prototype.tag = \"hmtx\";\n HmtxTable.prototype.parse = function(data) {\n var i, last, lsbCount, m, _j, _ref, _results;\n data.pos = this.offset;\n this.metrics = [];\n for (\n i = 0, _ref = this.file.hhea.numberOfMetrics;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n this.metrics.push({\n advance: data.readUInt16(),\n lsb: data.readInt16()\n });\n }\n lsbCount = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics;\n this.leftSideBearings = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(data.readInt16());\n }\n return _results;\n })();\n this.widths = function() {\n var _j, _len, _ref1, _results;\n _ref1 = this.metrics;\n _results = [];\n for (_j = 0, _len = _ref1.length; _j < _len; _j++) {\n m = _ref1[_j];\n _results.push(m.advance);\n }\n return _results;\n }.call(this);\n last = this.widths[this.widths.length - 1];\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(this.widths.push(last));\n }\n return _results;\n };\n /***************************************************************/\n /* function : forGlyph */\n /* comment : Returns the advance width and lsb for this glyph. */\n /***************************************************************/\n HmtxTable.prototype.forGlyph = function(id) {\n if (id in this.metrics) {\n return this.metrics[id];\n }\n return {\n advance: this.metrics[this.metrics.length - 1].advance,\n lsb: this.leftSideBearings[id - this.metrics.length]\n };\n };\n /*HmtxTable.prototype.encode = function (mapping) {\n var id, metric, table, _i, _len;\n table = new Data;\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n metric = this.forGlyph(id);\n table.writeUInt16(metric.advance);\n table.writeUInt16(metric.lsb);\n }\n return table.data;\n };*/\n return HmtxTable;\n})(Table);\n\nvar __slice = [].slice;\n\nvar GlyfTable = (function(_super) {\n __extends(GlyfTable, _super);\n\n function GlyfTable() {\n return GlyfTable.__super__.constructor.apply(this, arguments);\n }\n GlyfTable.prototype.tag = \"glyf\";\n GlyfTable.prototype.parse = function() {\n return (this.cache = {});\n };\n GlyfTable.prototype.glyphFor = function(id) {\n var data,\n index,\n length,\n loca,\n numberOfContours,\n raw,\n xMax,\n xMin,\n yMax,\n yMin;\n if (id in this.cache) {\n return this.cache[id];\n }\n loca = this.file.loca;\n data = this.file.contents;\n index = loca.indexOf(id);\n length = loca.lengthOf(id);\n if (length === 0) {\n return (this.cache[id] = null);\n }\n data.pos = this.offset + index;\n raw = new Data(data.read(length));\n numberOfContours = raw.readShort();\n xMin = raw.readShort();\n yMin = raw.readShort();\n xMax = raw.readShort();\n yMax = raw.readShort();\n if (numberOfContours === -1) {\n this.cache[id] = new CompoundGlyph(raw, xMin, yMin, xMax, yMax);\n } else {\n this.cache[id] = new SimpleGlyph(\n raw,\n numberOfContours,\n xMin,\n yMin,\n xMax,\n yMax\n );\n }\n return this.cache[id];\n };\n GlyfTable.prototype.encode = function(glyphs, mapping, old2new) {\n var glyph, id, offsets, table, _i, _len;\n table = [];\n offsets = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n glyph = glyphs[id];\n offsets.push(table.length);\n if (glyph) {\n table = table.concat(glyph.encode(old2new));\n }\n }\n offsets.push(table.length);\n return {\n table: table,\n offsets: offsets\n };\n };\n return GlyfTable;\n})(Table);\n\nvar SimpleGlyph = (function() {\n /**************************************************************************/\n /* function : SimpleGlyph */\n /* comment : Stores raw, xMin, yMin, xMax, and yMax values for this glyph.*/\n /**************************************************************************/\n function SimpleGlyph(raw, numberOfContours, xMin, yMin, xMax, yMax) {\n this.raw = raw;\n this.numberOfContours = numberOfContours;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = false;\n }\n SimpleGlyph.prototype.encode = function() {\n return this.raw.data;\n };\n return SimpleGlyph;\n})();\n\nvar CompoundGlyph = (function() {\n var ARG_1_AND_2_ARE_WORDS,\n MORE_COMPONENTS,\n WE_HAVE_AN_X_AND_Y_SCALE,\n WE_HAVE_A_SCALE,\n WE_HAVE_A_TWO_BY_TWO,\n WE_HAVE_INSTRUCTIONS;\n ARG_1_AND_2_ARE_WORDS = 0x0001;\n WE_HAVE_A_SCALE = 0x0008;\n MORE_COMPONENTS = 0x0020;\n WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;\n WE_HAVE_A_TWO_BY_TWO = 0x0080;\n WE_HAVE_INSTRUCTIONS = 0x0100;\n\n /********************************************************************************************************************/\n /* function : CompoundGlypg generator */\n /* comment : It stores raw, xMin, yMin, xMax, yMax, glyph id, and glyph offset for the corresponding compound glyph.*/\n /********************************************************************************************************************/\n function CompoundGlyph(raw, xMin, yMin, xMax, yMax) {\n var data, flags;\n this.raw = raw;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = true;\n this.glyphIDs = [];\n this.glyphOffsets = [];\n data = this.raw;\n while (true) {\n flags = data.readShort();\n this.glyphOffsets.push(data.pos);\n this.glyphIDs.push(data.readUInt16());\n if (!(flags & MORE_COMPONENTS)) {\n break;\n }\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n data.pos += 4;\n } else {\n data.pos += 2;\n }\n if (flags & WE_HAVE_A_TWO_BY_TWO) {\n data.pos += 8;\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n data.pos += 4;\n } else if (flags & WE_HAVE_A_SCALE) {\n data.pos += 2;\n }\n }\n }\n /****************************************************************************************************************/\n /* function : CompoundGlypg encode */\n /* comment : After creating a table for the characters you typed, you call directory.encode to encode the table.*/\n /****************************************************************************************************************/\n CompoundGlyph.prototype.encode = function() {\n var i, result, _len, _ref;\n result = new Data(__slice.call(this.raw.data));\n _ref = this.glyphIDs;\n for (i = 0, _len = _ref.length; i < _len; ++i) {\n result.pos = this.glyphOffsets[i];\n }\n return result.data;\n };\n return CompoundGlyph;\n})();\n\nvar LocaTable = (function(_super) {\n __extends(LocaTable, _super);\n\n function LocaTable() {\n return LocaTable.__super__.constructor.apply(this, arguments);\n }\n LocaTable.prototype.tag = \"loca\";\n LocaTable.prototype.parse = function(data) {\n var format, i;\n data.pos = this.offset;\n format = this.file.head.indexToLocFormat;\n if (format === 0) {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 2) {\n _results.push(data.readUInt16() * 2);\n }\n return _results;\n }.call(this));\n } else {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 4) {\n _results.push(data.readUInt32());\n }\n return _results;\n }.call(this));\n }\n };\n LocaTable.prototype.indexOf = function(id) {\n return this.offsets[id];\n };\n LocaTable.prototype.lengthOf = function(id) {\n return this.offsets[id + 1] - this.offsets[id];\n };\n LocaTable.prototype.encode = function(offsets, activeGlyphs) {\n var LocaTable = new Uint32Array(this.offsets.length);\n var glyfPtr = 0;\n var listGlyf = 0;\n for (var k = 0; k < LocaTable.length; ++k) {\n LocaTable[k] = glyfPtr;\n if (listGlyf < activeGlyphs.length && activeGlyphs[listGlyf] == k) {\n ++listGlyf;\n LocaTable[k] = glyfPtr;\n var start = this.offsets[k];\n var len = this.offsets[k + 1] - start;\n if (len > 0) {\n glyfPtr += len;\n }\n }\n }\n var newLocaTable = new Array(LocaTable.length * 4);\n for (var j = 0; j < LocaTable.length; ++j) {\n newLocaTable[4 * j + 3] = LocaTable[j] & 0x000000ff;\n newLocaTable[4 * j + 2] = (LocaTable[j] & 0x0000ff00) >> 8;\n newLocaTable[4 * j + 1] = (LocaTable[j] & 0x00ff0000) >> 16;\n newLocaTable[4 * j] = (LocaTable[j] & 0xff000000) >> 24;\n }\n return newLocaTable;\n };\n return LocaTable;\n})(Table);\n\n/************************************************************************************/\n/* function : invert */\n/* comment : Change the object's (key: value) to create an object with (value: key).*/\n/************************************************************************************/\nvar invert = function(object) {\n var key, ret, val;\n ret = {};\n for (key in object) {\n val = object[key];\n ret[val] = key;\n }\n return ret;\n};\n\n/*var successorOf = function (input) {\n var added, alphabet, carry, i, index, isUpperCase, last, length, next, result;\n alphabet = 'abcdefghijklmnopqrstuvwxyz';\n length = alphabet.length;\n result = input;\n i = input.length;\n while (i >= 0) {\n last = input.charAt(--i);\n if (isNaN(last)) {\n index = alphabet.indexOf(last.toLowerCase());\n if (index === -1) {\n next = last;\n carry = true;\n }\n else {\n next = alphabet.charAt((index + 1) % length);\n isUpperCase = last === last.toUpperCase();\n if (isUpperCase) {\n next = next.toUpperCase();\n }\n carry = index + 1 >= length;\n if (carry && i === 0) {\n added = isUpperCase ? 'A' : 'a';\n result = added + next + result.slice(1);\n break;\n }\n }\n }\n else {\n next = +last + 1;\n carry = next > 9;\n if (carry) {\n next = 0;\n }\n if (carry && i === 0) {\n result = '1' + next + result.slice(1);\n break;\n }\n }\n result = result.slice(0, i) + next + result.slice(i + 1);\n if (!carry) {\n break;\n }\n }\n return result;\n };*/\n\nvar Subset = (function() {\n function Subset(font) {\n this.font = font;\n this.subset = {};\n this.unicodes = {};\n this.next = 33;\n }\n /*Subset.prototype.use = function (character) {\n var i, _i, _ref;\n if (typeof character === 'string') {\n for (i = _i = 0, _ref = character.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n this.use(character.charCodeAt(i));\n }\n return;\n }\n if (!this.unicodes[character]) {\n this.subset[this.next] = character;\n return this.unicodes[character] = this.next++;\n }\n };*/\n /*Subset.prototype.encodeText = function (text) {\n var char, i, string, _i, _ref;\n string = '';\n for (i = _i = 0, _ref = text.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n char = this.unicodes[text.charCodeAt(i)];\n string += String.fromCharCode(char);\n }\n return string;\n };*/\n /***************************************************************/\n /* function : generateCmap */\n /* comment : Returns the unicode cmap for this font. */\n /***************************************************************/\n Subset.prototype.generateCmap = function() {\n var mapping, roman, unicode, unicodeCmap, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n mapping = {};\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n mapping[roman] = unicodeCmap[unicode];\n }\n return mapping;\n };\n /*Subset.prototype.glyphIDs = function () {\n var ret, roman, unicode, unicodeCmap, val, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n ret = [0];\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n val = unicodeCmap[unicode];\n if ((val != null) && __indexOf.call(ret, val) < 0) {\n ret.push(val);\n }\n }\n return ret.sort();\n };*/\n /******************************************************************/\n /* function : glyphsFor */\n /* comment : Returns simple glyph objects for the input character.*/\n /******************************************************************/\n Subset.prototype.glyphsFor = function(glyphIDs) {\n var additionalIDs, glyph, glyphs, id, _i, _len, _ref;\n glyphs = {};\n for (_i = 0, _len = glyphIDs.length; _i < _len; _i++) {\n id = glyphIDs[_i];\n glyphs[id] = this.font.glyf.glyphFor(id);\n }\n additionalIDs = [];\n for (id in glyphs) {\n glyph = glyphs[id];\n if (glyph != null ? glyph.compound : void 0) {\n additionalIDs.push.apply(additionalIDs, glyph.glyphIDs);\n }\n }\n if (additionalIDs.length > 0) {\n _ref = this.glyphsFor(additionalIDs);\n for (id in _ref) {\n glyph = _ref[id];\n glyphs[id] = glyph;\n }\n }\n return glyphs;\n };\n /***************************************************************/\n /* function : encode */\n /* comment : Encode various tables for the characters you use. */\n /***************************************************************/\n Subset.prototype.encode = function(glyID, indexToLocFormat) {\n var cmap,\n code,\n glyf,\n glyphs,\n id,\n ids,\n loca,\n new2old,\n newIDs,\n nextGlyphID,\n old2new,\n oldID,\n oldIDs,\n tables,\n _ref;\n cmap = CmapTable.encode(this.generateCmap(), \"unicode\");\n glyphs = this.glyphsFor(glyID);\n old2new = {\n 0: 0\n };\n _ref = cmap.charMap;\n for (code in _ref) {\n ids = _ref[code];\n old2new[ids.old] = ids[\"new\"];\n }\n nextGlyphID = cmap.maxGlyphID;\n for (oldID in glyphs) {\n if (!(oldID in old2new)) {\n old2new[oldID] = nextGlyphID++;\n }\n }\n new2old = invert(old2new);\n newIDs = Object.keys(new2old).sort(function(a, b) {\n return a - b;\n });\n oldIDs = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = newIDs.length; _i < _len; _i++) {\n id = newIDs[_i];\n _results.push(new2old[id]);\n }\n return _results;\n })();\n glyf = this.font.glyf.encode(glyphs, oldIDs, old2new);\n loca = this.font.loca.encode(glyf.offsets, oldIDs);\n tables = {\n cmap: this.font.cmap.raw(),\n glyf: glyf.table,\n loca: loca,\n hmtx: this.font.hmtx.raw(),\n hhea: this.font.hhea.raw(),\n maxp: this.font.maxp.raw(),\n post: this.font.post.raw(),\n name: this.font.name.raw(),\n head: this.font.head.encode(indexToLocFormat)\n };\n if (this.font.os2.exists) {\n tables[\"OS/2\"] = this.font.os2.raw();\n }\n return this.font.directory.encode(tables);\n };\n return Subset;\n})();\n\njsPDF.API.PDFObject = (function() {\n var pad;\n\n function PDFObject() {}\n pad = function(str, length) {\n return (Array(length + 1).join(\"0\") + str).slice(-length);\n };\n /*****************************************************************************/\n /* function : convert */\n /* comment :Converts pdf tag's / FontBBox and array values in / W to strings */\n /*****************************************************************************/\n PDFObject.convert = function(object) {\n var e, items, key, out, val;\n if (Array.isArray(object)) {\n items = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = object.length; _i < _len; _i++) {\n e = object[_i];\n _results.push(PDFObject.convert(e));\n }\n return _results;\n })().join(\" \");\n return \"[\" + items + \"]\";\n } else if (typeof object === \"string\") {\n return \"/\" + object;\n } else if (object != null ? object.isString : void 0) {\n return \"(\" + object + \")\";\n } else if (object instanceof Date) {\n return (\n \"(D:\" +\n pad(object.getUTCFullYear(), 4) +\n pad(object.getUTCMonth(), 2) +\n pad(object.getUTCDate(), 2) +\n pad(object.getUTCHours(), 2) +\n pad(object.getUTCMinutes(), 2) +\n pad(object.getUTCSeconds(), 2) +\n \"Z)\"\n );\n } else if ({}.toString.call(object) === \"[object Object]\") {\n out = [\"<<\"];\n for (key in object) {\n val = object[key];\n out.push(\"/\" + key + \" \" + PDFObject.convert(val));\n }\n out.push(\">>\");\n return out.join(\"\\n\");\n } else {\n return \"\" + object;\n }\n };\n return PDFObject;\n})();\n","import { ConversionOptions } from \"./types\";\n\nexport const MM_TO_PX = 3.77952755906;\n\nexport enum Resolution {\n LOW = 1,\n NORMAL = 2,\n MEDIUM = 3,\n HIGH = 7,\n EXTREME = 12,\n}\n\nexport enum Margin {\n NONE = 0,\n SMALL = 5,\n MEDIUM = 10,\n LARGE = 25,\n}\n\nexport const DEFAULT_OPTIONS: Readonly = {\n method: \"save\",\n resolution: Resolution.MEDIUM,\n page: {\n margin: Margin.NONE,\n format: \"A4\",\n orientation: \"portrait\",\n },\n canvas: {\n mimeType: \"image/jpeg\",\n qualityRatio: 1,\n useCORS: true,\n logging: false,\n },\n overrides: {},\n};\n","import jsPDF from \"jspdf\";\nimport { MM_TO_PX } from \"./constants\";\nimport { ConversionOptions, Options } from \"./types\";\n\nexport default class Converter {\n pdf: InstanceType;\n canvas: HTMLCanvasElement;\n options: Options;\n constructor(canvas: HTMLCanvasElement, options: ConversionOptions) {\n this.canvas = canvas;\n this.options = options;\n this.pdf = new jsPDF({\n format: this.options.page.format,\n orientation: this.options.page.orientation,\n ...this.options.overrides?.pdf,\n unit: \"mm\",\n });\n }\n getMarginTopMM() {\n const margin =\n typeof this.options.page.margin === \"object\"\n ? this.options.page.margin.top\n : this.options.page.margin;\n return Number(margin);\n }\n getMarginLeftMM() {\n const margin =\n typeof this.options.page.margin === \"object\"\n ? this.options.page.margin.left\n : this.options.page.margin;\n return Number(margin);\n }\n getMarginRightMM() {\n const margin =\n typeof this.options.page.margin === \"object\"\n ? this.options.page.margin.right\n : this.options.page.margin;\n return Number(margin);\n }\n getMarginBottomMM() {\n const margin =\n typeof this.options.page.margin === \"object\"\n ? this.options.page.margin.bottom\n : this.options.page.margin;\n return Number(margin);\n }\n getMarginTop() {\n return this.getMarginTopMM() * MM_TO_PX;\n }\n getMarginBottom() {\n return this.getMarginBottomMM() * MM_TO_PX;\n }\n getMarginLeft() {\n return this.getMarginLeftMM() * MM_TO_PX;\n }\n getMarginRight() {\n return this.getMarginRightMM() * MM_TO_PX;\n }\n getScale() {\n return this.options.resolution;\n }\n getPageHeight() {\n return this.getPageHeightMM() * MM_TO_PX;\n }\n getPageHeightMM() {\n return this.pdf.internal.pageSize.height;\n }\n getPageWidthMM() {\n return this.pdf.internal.pageSize.width;\n }\n getPageWidth() {\n return this.getPageWidthMM() * MM_TO_PX;\n }\n getOriginalCanvasWidth() {\n return this.canvas.width / this.getScale();\n }\n getOriginalCanvasHeight() {\n return this.canvas.height / this.getScale();\n }\n getCanvasPageAvailableHeight() {\n return (\n this.getPageAvailableHeight() *\n this.getScale() *\n this.getHorizontalFitFactor()\n );\n }\n getPageAvailableWidth() {\n return this.getPageWidth() - (this.getMarginLeft() + this.getMarginRight());\n }\n getPageAvailableHeight() {\n return (\n this.getPageHeight() - (this.getMarginTop() + this.getMarginBottom())\n );\n }\n getPageAvailableWidthMM() {\n return this.getPageAvailableWidth() / MM_TO_PX;\n }\n getPageAvailableHeightMM() {\n return this.getPageAvailableHeight() / MM_TO_PX;\n }\n getNumberPages() {\n return Math.ceil(this.canvas.height / this.getCanvasPageAvailableHeight());\n }\n getHorizontalFitFactor() {\n if (this.getPageAvailableWidth() < this.getOriginalCanvasWidth()) {\n return this.getOriginalCanvasWidth() / this.getPageAvailableWidth();\n }\n return 1;\n }\n getCanvasOffsetY(pageNumber: number) {\n return this.getCanvasPageAvailableHeight() * (pageNumber - 1);\n }\n getCanvasHeightLeft(pageNumber: number) {\n return this.canvas.height - this.getCanvasOffsetY(pageNumber);\n }\n getCanvasPageHeight(pageNumber: number) {\n if (this.canvas.height < this.getCanvasPageAvailableHeight()) {\n return this.canvas.height;\n }\n const canvasHeightPending = this.getCanvasHeightLeft(pageNumber);\n return canvasHeightPending < this.getCanvasPageAvailableHeight()\n ? canvasHeightPending\n : this.getCanvasPageAvailableHeight();\n }\n getCanvasPageWidth() {\n return this.canvas.width;\n }\n createCanvasPage(pageNumber: number): HTMLCanvasElement {\n const canvasPageWidth = this.getCanvasPageWidth();\n const canvasPageHeight = this.getCanvasPageHeight(pageNumber);\n const canvasPage = document.createElement(\"canvas\");\n canvasPage.setAttribute(\"width\", String(canvasPageWidth));\n canvasPage.setAttribute(\"height\", String(canvasPageHeight));\n const ctx = canvasPage.getContext(\"2d\");\n ctx.drawImage(\n this.canvas,\n 0,\n this.getCanvasOffsetY(pageNumber),\n this.canvas.width,\n canvasPageHeight,\n 0,\n 0,\n this.canvas.width,\n canvasPageHeight\n );\n return canvasPage;\n }\n convert(): InstanceType {\n let pageNumber = 1;\n const numberPages = this.getNumberPages();\n while (pageNumber <= numberPages) {\n if (pageNumber > 1) {\n this.pdf.addPage(\n this.options.page.format,\n this.options.page.orientation\n );\n }\n const canvasPage = this.createCanvasPage(pageNumber);\n const pageImageDataURL = canvasPage.toDataURL(\n this.options.canvas.mimeType,\n this.options.canvas.qualityRatio\n );\n this.pdf.setPage(pageNumber);\n this.pdf.addImage({\n imageData: pageImageDataURL,\n width:\n canvasPage.width /\n (this.getScale() * MM_TO_PX * this.getHorizontalFitFactor()),\n height:\n canvasPage.height /\n (this.getScale() * MM_TO_PX * this.getHorizontalFitFactor()),\n x: this.getMarginLeftMM(),\n y: this.getMarginTopMM(),\n });\n pageNumber += 1;\n }\n return this.pdf;\n }\n}\n","import { DEFAULT_OPTIONS } from \"./constants\";\nimport { ConversionOptions, Options } from \"./types\";\n\nexport const buildConvertOptions = (options?: Options): ConversionOptions => {\n if (!options) {\n return DEFAULT_OPTIONS;\n }\n return {\n ...DEFAULT_OPTIONS,\n ...options,\n canvas: { ...DEFAULT_OPTIONS.canvas, ...options.canvas },\n page: { ...DEFAULT_OPTIONS.page, ...options.page },\n };\n};\n","import { useRef, useCallback } from \"react\";\nimport html2canvas from \"html2canvas\";\n\nimport Converter from \"./converter\";\nimport { Options, TargetElementFinder, UsePDFResult } from \"./types\";\nimport { buildConvertOptions } from \"./utils\";\nimport jsPDF from \"jspdf\";\nexport { Resolution, Margin } from \"./constants\";\nexport type { Options };\n\nconst getTargetElement = (\n targetRefOrFunction: TargetElementFinder\n): HTMLElement | null | undefined => {\n if (typeof targetRefOrFunction === \"function\") {\n return targetRefOrFunction();\n }\n return targetRefOrFunction?.current;\n};\n\nexport const usePDF = (usePDFoptions?: Options): UsePDFResult => {\n const targetRef = useRef();\n const toPDF = useCallback(\n (toPDFoptions?: Options): Promise> => {\n return generatePDF(targetRef, usePDFoptions ?? toPDFoptions);\n },\n [targetRef, usePDFoptions]\n );\n return { targetRef, toPDF };\n};\n\nconst generatePDF = async (\n targetRefOrFunction: TargetElementFinder,\n customOptions?: Options\n): Promise> => {\n const options = buildConvertOptions(customOptions);\n const targetElement = getTargetElement(targetRefOrFunction);\n if (!targetElement) {\n console.error(\"Unable to get the target element.\");\n return;\n }\n const canvas = await html2canvas(targetElement, {\n useCORS: options.canvas.useCORS,\n logging: options.canvas.logging,\n scale: options.resolution,\n ...options.overrides?.canvas,\n });\n const converter = new Converter(canvas, options);\n const pdf = converter.convert();\n switch (options.method) {\n case \"build\":\n return pdf;\n case \"open\": {\n window.open(pdf.output(\"bloburl\"), \"_blank\");\n return pdf;\n }\n case \"save\":\n default: {\n const pdfFilename = options.filename ?? `${new Date().getTime()}.pdf`;\n await pdf.save(pdfFilename, { returnPromise: true });\n return pdf;\n }\n }\n};\n\nexport default generatePDF;\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.18.5';\nvar current_codepage = 1200, current_ansi = 1252;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t/*::[*/0/*::]*/: 1252, /* ANSI */\n\t/*::[*/1/*::]*/: 65001, /* DEFAULT */\n\t/*::[*/2/*::]*/: 65001, /* SYMBOL */\n\t/*::[*/77/*::]*/: 10000, /* MAC */\n\t/*::[*/128/*::]*/: 932, /* SHIFTJIS */\n\t/*::[*/129/*::]*/: 949, /* HANGUL */\n\t/*::[*/130/*::]*/: 1361, /* JOHAB */\n\t/*::[*/134/*::]*/: 936, /* GB2312 */\n\t/*::[*/136/*::]*/: 950, /* CHINESEBIG5 */\n\t/*::[*/161/*::]*/: 1253, /* GREEK */\n\t/*::[*/162/*::]*/: 1254, /* TURKISH */\n\t/*::[*/163/*::]*/: 1258, /* VIETNAMESE */\n\t/*::[*/177/*::]*/: 1255, /* HEBREW */\n\t/*::[*/178/*::]*/: 1256, /* ARABIC */\n\t/*::[*/186/*::]*/: 1257, /* BALTIC */\n\t/*::[*/204/*::]*/: 1251, /* RUSSIAN */\n\t/*::[*/222/*::]*/: 874, /* THAI */\n\t/*::[*/238/*::]*/: 1250, /* EASTEUROPE */\n\t/*::[*/255/*::]*/: 1252, /* OEM */\n\t/*::[*/69/*::]*/: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array*/ { var o/*:Array*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data/*:string*/)/*:string*/ {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nvar $cptable;\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return $cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x/*:number*/)/*:string*/ {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn $cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nexport { set_cptable };\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n input = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") { throw \"wtf\"; }\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days/*:Array >*/ = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months/*:Array >*/ = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction SSF_init_table(t/*:any*/) {\n\tif(!t) t = {};\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array*/ {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = SSF_fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nvar SSFbasedate = /*#__PURE__*/new Date(1899, 11, 31, 0, 0, 0);\nvar SSFdnthresh = /*#__PURE__*/SSFbasedate.getTime();\nvar SSFbase1904 = /*#__PURE__*/new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= SSFbase1904) epoch += 24*60*60*1000;\n\treturn (epoch - (SSFdnthresh + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/SSFbasedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return SSF_format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str/*:string*/)/*:string*/ {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(/*::(*/r/*::||[\"\"])*/[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri*/ {\n\tvar out/*:Array*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!SSF_isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\n\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\n};\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array*/)/*:string*/ {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array*/ = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports = {};\nexports.version = '1.2.1';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf/*:CFBlob*/)/*:Date*/ {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = {}); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs/*:Array*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = /*::(*/file.slice(0,ssz)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors/*:Array*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files/*:CFBFiles*/ = {}, Paths/*:Array*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob/*:CFBlob*/)/*:[number, number]*/ {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file/*:RawBytes*/, ssz/*:number*/)/*:Array*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array*/ = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array*/, Paths/*:Array*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array*/ = [], q/*:Array*/ = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx/*:number*/, cnt/*:number*/, sectors/*:Array*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors/*:Array*/, start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/, chkd/*:?Array*/)/*:SectorEntry*/ {\n\tvar buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors/*:Array*/, dir_start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array*/ = [], buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array*/, Paths/*:Array*/, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o/*:CFBEntry*/ = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size)/*:any*/);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = fullPaths[dad];\n\t\tif(!s) {\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\n\t\t}\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array*/{\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\n\t\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\t\tvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w/*:number*/)/*:void*/ {\n\t\tfor(T += w; i> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm/*:string*/ = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : o;\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < L; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t}\n\n\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n}\n/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz/*:number*/) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else if((header >> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt + 100); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(/*::(*/blob.slice(blob.l+namelen, blob.l+namelen+efsz)/*:: :any)*/);\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(/*::(*/blob.slice(blob.l, blob.l + efsz)/*:: :any)*/);\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break; // TODO: scan for magic number\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(/*::((*/fi.content/*::||[]):any)*/, 0);\n\n\t\tvar outbuf = fi.content/*::||[]*/;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^(.*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath/*:string*/ = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb/*:CFBContainer*/)/*:void*/ { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nlet _fs = void 0;\nfunction set_fs(fs) { _fs = fs; }\nexport { set_fs };\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o/*:any*/)/*:Array*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = /*#__PURE__*/new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = /*#__PURE__*/new Date();\nvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/refdate.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\nvar refoffset = /*#__PURE__*/refdate.getTimezoneOffset();\nfunction numdate(v/*:number*/)/*:Date*/ {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date_1 = /*#__PURE__*/new Date('2017-02-19T19:06:09.000Z');\nvar good_pd_date = /*#__PURE__*/isNaN(/*#__PURE__*/good_pd_date_1.getFullYear()) ? /*#__PURE__*/new Date('2/19/17') : good_pd_date_1;\nvar good_pd = /*#__PURE__*/good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str/*:string|Date*/, fixdate/*:?number*/)/*:Date*/ {\n\tvar d = new Date(str);\n\tif(good_pd) {\n\t\t/*:: if(fixdate == null) fixdate = 0; */\n\t\tif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr/*:Array*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [];\n\tfor(var i = 0; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tvar lower = s.toLowerCase();\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"
    \").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); }\n\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nfunction utf8reada(orig/*:string*/)/*:string*/ {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n}\n\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array*/ = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\n// matches ... extracts content\nvar matchtag = /*#__PURE__*/(function() {\n\tvar mtcache/*:{[k:string]:RegExp}*/ = ({}/*:any*/);\n\treturn function matchtag(f/*:string*/,g/*:?string*/)/*:RegExp*/ {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)',((g||\"\")/*:any*/)));\n\t};\n})();\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+ tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = /*#__PURE__*/(function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array*/ = data.match(vtregex(h.baseType))||[];\n\tvar res/*:Array*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + ''; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n}/*:any*/);\n\nvar XMLNS_main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar ___toBuffer = function(bufs/*:Array >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array*/=[]; for(var i=s; i*/=[]; for(var i=s; i 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof $cptable !== 'undefined') o = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof $cptable !== 'undefined') {\n\t\t\t\to = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else /*:: if(typeof val === 'number') */ switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr/*:string*/, fld/*:string*/)/*:void*/ {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb/*:RecordHopperCB*/, opts/*:?any*/) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz/*:number*/)/*:Block*/ {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn bconcat(bufs);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +type, l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(/*:: length != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr/*:string*/)/*:CellAddress*/ { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell/*:CellAddress*/)/*:string*/ { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range/*:string*/)/*:Range*/ {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell/*:Cell*/, v/*:any*/) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF_format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF_format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell/*:Cell*/, v/*:any*/, o/*:any*/) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || (dense ? ([]/*:any*/) : ({}/*:any*/));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell/*:Cell*/ = ({v: data[R][C] }/*:any*/);\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}/*:any*/));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str }/*:any*/);\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data)/*:any*/ {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell/*:any*/, o/*:?Block*/) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data)/*:number*/ {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Category', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'PresentationFormat', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'ByteCount', t: VT_I4 },\n\t/*::[*/0x05/*::]*/: { n: 'LineCount', t: VT_I4 },\n\t/*::[*/0x06/*::]*/: { n: 'ParagraphCount', t: VT_I4 },\n\t/*::[*/0x07/*::]*/: { n: 'SlideCount', t: VT_I4 },\n\t/*::[*/0x08/*::]*/: { n: 'NoteCount', t: VT_I4 },\n\t/*::[*/0x09/*::]*/: { n: 'HiddenCount', t: VT_I4 },\n\t/*::[*/0x0a/*::]*/: { n: 'MultimediaClipCount', t: VT_I4 },\n\t/*::[*/0x0b/*::]*/: { n: 'ScaleCrop', t: VT_BOOL },\n\t/*::[*/0x0c/*::]*/: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t/*::[*/0x0d/*::]*/: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t/*::[*/0x0e/*::]*/: { n: 'Manager', t: VT_STRING },\n\t/*::[*/0x0f/*::]*/: { n: 'Company', t: VT_STRING },\n\t/*::[*/0x10/*::]*/: { n: 'LinksUpToDate', t: VT_BOOL },\n\t/*::[*/0x11/*::]*/: { n: 'CharacterCount', t: VT_I4 },\n\t/*::[*/0x13/*::]*/: { n: 'SharedDoc', t: VT_BOOL },\n\t/*::[*/0x16/*::]*/: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t/*::[*/0x17/*::]*/: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t/*::[*/0x18/*::]*/: { n: 'DigSig', t: VT_BLOB },\n\t/*::[*/0x1A/*::]*/: { n: 'ContentType', t: VT_STRING },\n\t/*::[*/0x1B/*::]*/: { n: 'ContentStatus', t: VT_STRING },\n\t/*::[*/0x1C/*::]*/: { n: 'Language', t: VT_STRING },\n\t/*::[*/0x1D/*::]*/: { n: 'Version', t: VT_STRING },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Title', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'Subject', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'Author', t: VT_STRING },\n\t/*::[*/0x05/*::]*/: { n: 'Keywords', t: VT_STRING },\n\t/*::[*/0x06/*::]*/: { n: 'Comments', t: VT_STRING },\n\t/*::[*/0x07/*::]*/: { n: 'Template', t: VT_STRING },\n\t/*::[*/0x08/*::]*/: { n: 'LastAuthor', t: VT_STRING },\n\t/*::[*/0x09/*::]*/: { n: 'RevNumber', t: VT_STRING },\n\t/*::[*/0x0A/*::]*/: { n: 'EditTime', t: VT_FILETIME },\n\t/*::[*/0x0B/*::]*/: { n: 'LastPrinted', t: VT_FILETIME },\n\t/*::[*/0x0C/*::]*/: { n: 'CreatedDate', t: VT_FILETIME },\n\t/*::[*/0x0D/*::]*/: { n: 'ModifiedDate', t: VT_FILETIME },\n\t/*::[*/0x0E/*::]*/: { n: 'PageCount', t: VT_I4 },\n\t/*::[*/0x0F/*::]*/: { n: 'WordCount', t: VT_I4 },\n\t/*::[*/0x10/*::]*/: { n: 'CharCount', t: VT_I4 },\n\t/*::[*/0x11/*::]*/: { n: 'Thumbnail', t: VT_CF },\n\t/*::[*/0x12/*::]*/: { n: 'Application', t: VT_STRING },\n\t/*::[*/0x13/*::]*/: { n: 'DocSecurity', t: VT_I4 },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t/*::[*/0x0001/*::]*/: \"US\", // United States\n\t/*::[*/0x0002/*::]*/: \"CA\", // Canada\n\t/*::[*/0x0003/*::]*/: \"\", // Latin America (except Brazil)\n\t/*::[*/0x0007/*::]*/: \"RU\", // Russia\n\t/*::[*/0x0014/*::]*/: \"EG\", // Egypt\n\t/*::[*/0x001E/*::]*/: \"GR\", // Greece\n\t/*::[*/0x001F/*::]*/: \"NL\", // Netherlands\n\t/*::[*/0x0020/*::]*/: \"BE\", // Belgium\n\t/*::[*/0x0021/*::]*/: \"FR\", // France\n\t/*::[*/0x0022/*::]*/: \"ES\", // Spain\n\t/*::[*/0x0024/*::]*/: \"HU\", // Hungary\n\t/*::[*/0x0027/*::]*/: \"IT\", // Italy\n\t/*::[*/0x0029/*::]*/: \"CH\", // Switzerland\n\t/*::[*/0x002B/*::]*/: \"AT\", // Austria\n\t/*::[*/0x002C/*::]*/: \"GB\", // United Kingdom\n\t/*::[*/0x002D/*::]*/: \"DK\", // Denmark\n\t/*::[*/0x002E/*::]*/: \"SE\", // Sweden\n\t/*::[*/0x002F/*::]*/: \"NO\", // Norway\n\t/*::[*/0x0030/*::]*/: \"PL\", // Poland\n\t/*::[*/0x0031/*::]*/: \"DE\", // Germany\n\t/*::[*/0x0034/*::]*/: \"MX\", // Mexico\n\t/*::[*/0x0037/*::]*/: \"BR\", // Brazil\n\t/*::[*/0x003d/*::]*/: \"AU\", // Australia\n\t/*::[*/0x0040/*::]*/: \"NZ\", // New Zealand\n\t/*::[*/0x0042/*::]*/: \"TH\", // Thailand\n\t/*::[*/0x0051/*::]*/: \"JP\", // Japan\n\t/*::[*/0x0052/*::]*/: \"KR\", // Korea\n\t/*::[*/0x0054/*::]*/: \"VN\", // Viet Nam\n\t/*::[*/0x0056/*::]*/: \"CN\", // China\n\t/*::[*/0x005A/*::]*/: \"TR\", // Turkey\n\t/*::[*/0x0069/*::]*/: \"JS\", // Ramastan\n\t/*::[*/0x00D5/*::]*/: \"DZ\", // Algeria\n\t/*::[*/0x00D8/*::]*/: \"MA\", // Morocco\n\t/*::[*/0x00DA/*::]*/: \"LY\", // Libya\n\t/*::[*/0x015F/*::]*/: \"PT\", // Portugal\n\t/*::[*/0x0162/*::]*/: \"IS\", // Iceland\n\t/*::[*/0x0166/*::]*/: \"FI\", // Finland\n\t/*::[*/0x01A4/*::]*/: \"CZ\", // Czech Republic\n\t/*::[*/0x0376/*::]*/: \"TW\", // Taiwan\n\t/*::[*/0x03C1/*::]*/: \"LB\", // Lebanon\n\t/*::[*/0x03C2/*::]*/: \"JO\", // Jordan\n\t/*::[*/0x03C3/*::]*/: \"SY\", // Syria\n\t/*::[*/0x03C4/*::]*/: \"IQ\", // Iraq\n\t/*::[*/0x03C5/*::]*/: \"KW\", // Kuwait\n\t/*::[*/0x03C6/*::]*/: \"SA\", // Saudi Arabia\n\t/*::[*/0x03CB/*::]*/: \"AE\", // United Arab Emirates\n\t/*::[*/0x03CC/*::]*/: \"IL\", // Israel\n\t/*::[*/0x03CE/*::]*/: \"QA\", // Qatar\n\t/*::[*/0x03D5/*::]*/: \"IR\", // Iran\n\t/*::[*/0xFFFF/*::]*/: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr/*:Array*/)/*:Array<[number, number, number]>*/ { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t/*::[*/0x00/*::]*/: \"#NULL!\",\n\t/*::[*/0x07/*::]*/: \"#DIV/0!\",\n\t/*::[*/0x0F/*::]*/: \"#VALUE!\",\n\t/*::[*/0x17/*::]*/: \"#REF!\",\n\t/*::[*/0x1D/*::]*/: \"#NAME?\",\n\t/*::[*/0x24/*::]*/: \"#NUM!\",\n\t/*::[*/0x2A/*::]*/: \"#N/A\",\n\t/*::[*/0x2B/*::]*/: \"#GETTING_DATA\",\n\t/*::[*/0xFF/*::]*/: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary */\n/* 14.2 Part Summary */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase ' 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nfunction write_ct(ct, opts)/*:string*/ {\n\tvar type2ct/*{[string]:Array}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array*/ = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = writextag('Types', null, {\n\t\t'xmlns': XMLNS.CT,\n\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t});\n\n\to = o.concat([\n\t\t['xml', 'application/xml'],\n\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t/* from test files */\n\t\t['bmp', 'image/bmp'],\n\t\t['png', 'image/png'],\n\t\t['gif', 'image/gif'],\n\t\t['emf', 'image/x-emf'],\n\t\t['wmf', 'image/x-wmf'],\n\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t['pdf', 'application/pdf'],\n\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t].map(function(x) {\n\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t}));\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 \n\t\tcase 'file-entry': // 4.3 \n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 \n\t\tcase 'algorithm': // 4.5 \n\t\tcase 'start-key-generation': // 4.6 \n\t\tcase 'key-derivation': // 4.7 \n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest/*:Array >*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\to.push(' \\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' \\n');\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file/*:string*/, res/*:string*/, tag/*:?string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base/*:string*/, file/*:string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nfunction write_meta_ods(/*:: wb: Workbook, opts: any*/)/*:string*/ {\n\treturn 'Sheet' + 'JS ' + XLSX.version + '';\n}\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS/*:Array >*/ = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nvar CORE_PROPS_REGEX/*:Array*/ = /*#__PURE__*/(function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS/*:Array >*/ = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', 'Worksheets')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"\" + escapexml(s) + \"\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': name = null; break;\n\t\t\tdefault: if (x.indexOf('');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array*/ = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time/*:string|Date*/) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad/*:?number*/) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type/*:number*/, _opts)/*:any*/ {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)/*:number*/);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ]; //.concat(PseudoPropsPairs);\nfunction guess_property_type(val/*:any*/)/*:number*/ {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1 || PseudoPropsPairs.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI/*:: || {}*/)[idx]/*:: || {} */;\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({}/*:any*/);\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier }/*:any*/);\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"\" + z.t + \"\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob/*::, length, opts*/) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob/*::, length*/) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob/*::, length*/)/*:Cell*/ {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe}/*:any*/);\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r/*:Range*/, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob/*::, length*/) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n\t/*::[*/0x00/*::]*/: parse_FtSkip, /* FtEnd */\n\t/*::[*/0x04/*::]*/: parse_FtSkip, /* FtMacro */\n\t/*::[*/0x05/*::]*/: parse_FtSkip, /* FtButton */\n\t/*::[*/0x06/*::]*/: parse_FtSkip, /* FtGmo */\n\t/*::[*/0x07/*::]*/: parse_FtCf, /* FtCf */\n\t/*::[*/0x08/*::]*/: parse_FtSkip, /* FtPioGrbit */\n\t/*::[*/0x09/*::]*/: parse_FtSkip, /* FtPictFmla */\n\t/*::[*/0x0A/*::]*/: parse_FtSkip, /* FtCbls */\n\t/*::[*/0x0B/*::]*/: parse_FtSkip, /* FtRbo */\n\t/*::[*/0x0C/*::]*/: parse_FtSkip, /* FtSbs */\n\t/*::[*/0x0D/*::]*/: parse_FtNts, /* FtNts */\n\t/*::[*/0x0E/*::]*/: parse_FtSkip, /* FtSbsFmla */\n\t/*::[*/0x0F/*::]*/: parse_FtSkip, /* FtGboData */\n\t/*::[*/0x10/*::]*/: parse_FtSkip, /* FtEdoData */\n\t/*::[*/0x11/*::]*/: parse_FtSkip, /* FtRboData */\n\t/*::[*/0x12/*::]*/: parse_FtSkip, /* FtCblsData */\n\t/*::[*/0x13/*::]*/: parse_FtSkip, /* FtLbsData */\n\t/*::[*/0x14/*::]*/: parse_FtSkip, /* FtCblsFmla */\n\t/*::[*/0x15/*::]*/: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb/*:Workbook*/, t/*:number*/, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s/*:string*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i/*:number*/, f/*:string*/, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts/*:Array*/) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2 || length == 9) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t}/*:any*/);\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length)/*:Array*/ {\n\tvar merges/*:Array*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array*/) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = {\n0x08: function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n}\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts); // eslint-disable-line no-unused-vars\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob/*::, length*/) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\n\t/* shapefile DBF extension */\n\t/*::[*/0x00/*::]*/: 20127, /*::[*/0x08/*::]*/: 865,\n\t/*::[*/0x09/*::]*/: 437, /*::[*/0x0A/*::]*/: 850,\n\t/*::[*/0x0B/*::]*/: 437, /*::[*/0x0D/*::]*/: 437,\n\t/*::[*/0x0E/*::]*/: 850, /*::[*/0x0F/*::]*/: 437,\n\t/*::[*/0x10/*::]*/: 850, /*::[*/0x11/*::]*/: 437,\n\t/*::[*/0x12/*::]*/: 850, /*::[*/0x13/*::]*/: 932,\n\t/*::[*/0x14/*::]*/: 850, /*::[*/0x15/*::]*/: 437,\n\t/*::[*/0x16/*::]*/: 850, /*::[*/0x17/*::]*/: 865,\n\t/*::[*/0x18/*::]*/: 437, /*::[*/0x19/*::]*/: 437,\n\t/*::[*/0x1A/*::]*/: 850, /*::[*/0x1B/*::]*/: 437,\n\t/*::[*/0x1C/*::]*/: 863, /*::[*/0x1D/*::]*/: 850,\n\t/*::[*/0x1F/*::]*/: 852, /*::[*/0x22/*::]*/: 852,\n\t/*::[*/0x23/*::]*/: 852, /*::[*/0x24/*::]*/: 860,\n\t/*::[*/0x25/*::]*/: 850, /*::[*/0x26/*::]*/: 866,\n\t/*::[*/0x37/*::]*/: 850, /*::[*/0x40/*::]*/: 852,\n\t/*::[*/0x4D/*::]*/: 936, /*::[*/0x4E/*::]*/: 949,\n\t/*::[*/0x4F/*::]*/: 950, /*::[*/0x50/*::]*/: 874,\n\t/*::[*/0x57/*::]*/: 1252, /*::[*/0x58/*::]*/: 1252,\n\t/*::[*/0x59/*::]*/: 1252, /*::[*/0x6C/*::]*/: 863,\n\t/*::[*/0x86/*::]*/: 737, /*::[*/0x87/*::]*/: 852,\n\t/*::[*/0x88/*::]*/: 857, /*::[*/0xCC/*::]*/: 1257,\n\n\t/*::[*/0xFF/*::]*/: 16969\n};\nvar dbf_reverse_map = evert({\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\t/*::[*/0x00/*::]*/: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64_decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\n\t\tfield.name = $cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = $cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[i] == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes/*:Array*/ = [];\n\tvar colwidths/*:Array*/ = [];\n\tvar coldecimals/*:Array*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array*/ = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tmaxlen = Math.max(maxlen, String(col[j]).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[/*::String(*/current_ansi/*::)*/] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += (colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array*/ = [], colinfo/*:Array*/ = [], cw/*:Array*/ = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'W': break; /* window? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1;\n\t\t\tfor(rj=1; rj -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tarr[R][C][1] = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*//*::, opts*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\").replace(/;/g, \";;\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out/*:Array*/, rows/*:Array*/) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws/*:Worksheet*/, opts/*:?any*/)/*:string*/ {\n\t\tvar preamble/*:Array*/ = [\"ID;PWXL;N;E\"], o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = /*#__PURE__*/(function() {\n\t\tvar push_field = function pf(o/*:Array*/, topic/*:string*/, v/*:number*/, n/*:number*/, s/*:string*/) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o/*:Array*/, type/*:number*/, v/*:any*/, s/*:string*/) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\t\tvar o/*:Array*/ = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array*/ = [], oo/*:Array*/ = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF_format(cell.z || table_fmt[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n\t\t/*::[*/0x2C/*::]*/: ',',\n\t\t/*::[*/0x09/*::]*/: \"\\t\",\n\t\t/*::[*/0x3B/*::]*/: ';',\n\t\t/*::[*/0x7C/*::]*/: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t/*::[*/0x2C/*::]*/: 3,\n\t\t/*::[*/0x09/*::]*/: 2,\n\t\t/*::[*/0x3B/*::]*/: 1,\n\t\t/*::[*/0x7C/*::]*/: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re/*:?RegExp*/ = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({}/*:any*/);\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF_format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64_decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo/*:Array*/ = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64_decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ((o.dense ? [] : {})/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || table_fmt[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (s[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = Array.isArray(ws);\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell.v));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell.v));\n\t\t\t\t} else {\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, v) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, v) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t0x6F: [\"T\", 1]\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"CALCMODE\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCORDER\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"SPLIT\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SYNC\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"RANGE\", f:parse_RANGE },\n\t\t/*::[*/0x0007/*::]*/: { n:\"WINDOW1\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"COLW1\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"WINTWO\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"COLW2\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"NAME\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"BLANK\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t/*::[*/0x000E/*::]*/: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t/*::[*/0x000F/*::]*/: { n:\"LABEL\", f:parse_LABEL },\n\t\t/*::[*/0x0010/*::]*/: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t/*::[*/0x0018/*::]*/: { n:\"TABLE\" },\n\t\t/*::[*/0x0019/*::]*/: { n:\"ORANGE\" },\n\t\t/*::[*/0x001A/*::]*/: { n:\"PRANGE\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"SRANGE\" },\n\t\t/*::[*/0x001C/*::]*/: { n:\"FRANGE\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"KRANGE1\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"HRANGE\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"KRANGE2\" },\n\t\t/*::[*/0x0024/*::]*/: { n:\"PROTEC\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"FOOTER\" },\n\t\t/*::[*/0x0026/*::]*/: { n:\"HEADER\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"SETUP\" },\n\t\t/*::[*/0x0028/*::]*/: { n:\"MARGINS\" },\n\t\t/*::[*/0x0029/*::]*/: { n:\"LABELFMT\" },\n\t\t/*::[*/0x002A/*::]*/: { n:\"TITLES\" },\n\t\t/*::[*/0x002B/*::]*/: { n:\"SHEETJS\" },\n\t\t/*::[*/0x002D/*::]*/: { n:\"GRAPH\" },\n\t\t/*::[*/0x002E/*::]*/: { n:\"NGRAPH\" },\n\t\t/*::[*/0x002F/*::]*/: { n:\"CALCCOUNT\" },\n\t\t/*::[*/0x0030/*::]*/: { n:\"UNFORMATTED\" },\n\t\t/*::[*/0x0031/*::]*/: { n:\"CURSORW12\" },\n\t\t/*::[*/0x0032/*::]*/: { n:\"WINDOW\" },\n\t\t/*::[*/0x0033/*::]*/: { n:\"STRING\", f:parse_LABEL },\n\t\t/*::[*/0x0037/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0038/*::]*/: { n:\"LOCKED\" },\n\t\t/*::[*/0x003C/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x003D/*::]*/: { n:\"QUERYNAME\" },\n\t\t/*::[*/0x003E/*::]*/: { n:\"PRINT\" },\n\t\t/*::[*/0x003F/*::]*/: { n:\"PRINTNAME\" },\n\t\t/*::[*/0x0040/*::]*/: { n:\"GRAPH2\" },\n\t\t/*::[*/0x0041/*::]*/: { n:\"GRAPHNAME\" },\n\t\t/*::[*/0x0042/*::]*/: { n:\"ZOOM\" },\n\t\t/*::[*/0x0043/*::]*/: { n:\"SYMSPLIT\" },\n\t\t/*::[*/0x0044/*::]*/: { n:\"NSROWS\" },\n\t\t/*::[*/0x0045/*::]*/: { n:\"NSCOLS\" },\n\t\t/*::[*/0x0046/*::]*/: { n:\"RULER\" },\n\t\t/*::[*/0x0047/*::]*/: { n:\"NNAME\" },\n\t\t/*::[*/0x0048/*::]*/: { n:\"ACOMM\" },\n\t\t/*::[*/0x0049/*::]*/: { n:\"AMACRO\" },\n\t\t/*::[*/0x004A/*::]*/: { n:\"PARSE\" },\n\t\t/*::[*/0x0066/*::]*/: { n:\"PRANGES??\" },\n\t\t/*::[*/0x0067/*::]*/: { n:\"RRANGES??\" },\n\t\t/*::[*/0x0068/*::]*/: { n:\"FNAME??\" },\n\t\t/*::[*/0x0069/*::]*/: { n:\"MRANGES??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00DE/*::]*/: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\" },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCSET\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"WINDOWSET\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SHEETCELLPTR\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"SHEETLAYOUT\" },\n\t\t/*::[*/0x0007/*::]*/: { n:\"COLUMNWIDTH\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"HIDDENCOLUMN\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"USERRANGE\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"SYSTEMRANGE\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"ZEROFORCE\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"SORTKEYDIR\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"FILESEAL\" },\n\t\t/*::[*/0x000E/*::]*/: { n:\"DATAFILLNUMS\" },\n\t\t/*::[*/0x000F/*::]*/: { n:\"PRINTMAIN\" },\n\t\t/*::[*/0x0010/*::]*/: { n:\"PRINTSTRING\" },\n\t\t/*::[*/0x0011/*::]*/: { n:\"GRAPHMAIN\" },\n\t\t/*::[*/0x0012/*::]*/: { n:\"GRAPHSTRING\" },\n\t\t/*::[*/0x0013/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0014/*::]*/: { n:\"ERRCELL\" },\n\t\t/*::[*/0x0015/*::]*/: { n:\"NACELL\" },\n\t\t/*::[*/0x0016/*::]*/: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t/*::[*/0x0017/*::]*/: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t/*::[*/0x0018/*::]*/: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t/*::[*/0x0019/*::]*/: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t/*::[*/0x001A/*::]*/: { n:\"FORMULA1A\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t/*::[*/0x001C/*::]*/: { n:\"DTLABELMISC\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"DTLABELCELL\" },\n\t\t/*::[*/0x001E/*::]*/: { n:\"GRAPHWINDOW\" },\n\t\t/*::[*/0x001F/*::]*/: { n:\"CPA\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"LPLAUTO\" },\n\t\t/*::[*/0x0021/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x0022/*::]*/: { n:\"HIDDENSHEET\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t/*::[*/0x0026/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t/*::[*/0x0028/*::]*/: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t/*::[*/0x008E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0093/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0096/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0097/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0098/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0099/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00A3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B1/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B8/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BA/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BB/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BC/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00CD/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00D0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0100/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0103/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0104/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0105/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0106/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0107/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0109/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010F/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0180/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0185/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0186/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0189/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x018C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0200/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0202/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0201/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0204/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0205/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0280/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0281/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0282/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0283/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0284/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0285/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0286/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0287/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0288/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0292/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0293/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0294/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0295/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0296/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0299/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x029A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0300/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0304/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0601/*::]*/: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t/*::[*/0x0640/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0642/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0701/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0702/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0703/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0704/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0780/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0800/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0801/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0804/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0A80/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x2AF6/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x3231/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6E49/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6F44/*::]*/: { n:\"??\" },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '':\n\t\t\tcase '': font.shadow = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '':\n\t\t\tcase '': font.outline = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '':\n\t\t\tcase '': font.strike = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '':\n\t\t\tcase '': font.u = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '':\n\t\t\tcase '': font.b = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '':\n\t\t\tcase '': font.i = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array*/ = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array, string, Array]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
    ') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS_main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s/*:XLString*/ = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* BrtBeginSst */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* BrtSSTItem */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* BrtEndSst */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array*/ = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps/*:Array<{t:number, v:string}>*/ = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob)/*:Array*/ {\n\tvar o/*:Array*/ = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length/*:number*/) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length/*:number*/) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob/*::, vers*/) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt(/*::blob, vers*/) { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob/*::, vers*/) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob/*::, length*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password/*:string*/) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = /*#__PURE__*/(function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password/*:string*/) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password/*:string*/, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password/*:string*/) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }/*:any*/);\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length/*:number*/, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = /*#__PURE__*/(function() {\n\tfunction rtf_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\t/* TODO: this is a stub */\n\tfunction rtf_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\n\t\tvar rows = str.match(/\\\\trowd.*?\\\\row\\b/g);\n\t\tif(!rows.length) throw new Error(\"RTF missing table\");\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:rows.length - 1}}/*:any*/);\n\t\trows.forEach(function(rowtf, R) {\n\t\t\tif(Array.isArray(ws)) ws[R] = [];\n\t\t\tvar rtfre = /\\\\\\w+\\b/g;\n\t\t\tvar last_index = 0;\n\t\t\tvar res;\n\t\t\tvar C = -1;\n\t\t\twhile((res = rtfre.exec(rowtf))) {\n\t\t\t\tswitch(res[0]) {\n\t\t\t\t\tcase \"\\\\cell\":\n\t\t\t\t\t\tvar data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n\t\t\t\t\t\tif(data[0] == \" \") data = data.slice(1);\n\t\t\t\t\t\t++C;\n\t\t\t\t\t\tif(data.length) {\n\t\t\t\t\t\t\t// TODO: value parsing, including codepage adjustments\n\t\t\t\t\t\t\tvar cell = {v: data, t:\"s\"};\n\t\t\t\t\t\t\tif(Array.isArray(ws)) ws[R][C] = cell;\n\t\t\t\t\t\t\telse ws[encode_cell({r:R, c:C})] = cell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tlast_index = rtfre.lastIndex;\n\t\t\t}\n\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t});\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws/*:Worksheet*//*::, opts*/)/*:string*/ {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF_load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF/*:{[n:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= /*#__PURE__*/(function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames/*:EvertNumType*/;\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF_load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* BrtBeginCellXFs */) {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* BrtStyle */\n\t\t\tcase 0x01FB: /* BrtDXF */\n\t\t\tcase 0x023C: /* BrtMRUColor */\n\t\t\tcase 0x01DB: /* BrtIndexedColor */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* BrtDXF14 */\n\t\t\tcase 0x0836: /* BrtDXF15 */\n\t\t\tcase 0x046A: /* BrtSlicerStyleElement */\n\t\t\tcase 0x0200: /* BrtTableStyleElement */\n\t\t\tcase 0x082F: /* BrtTimelineStyleElement */\n\t\t\tcase 0x0C00: /* BrtUid */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* BrtACBegin */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* BrtFont */, write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* BrtXF */, write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* BrtStyle */, write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0116 /* BrtBeginStyleSheet */);\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob/*::, length*/)/*:Array*/ {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n case \"\":\n case \"\":\n break;\n case \"\":\n pass = false;\n break;\n case \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array*/ {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ']*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId/*:number*/, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
    ',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nfunction sheet_insert_comments(sheet, comments/*:Array*/, threaded/*:boolean*/, people/*:?Array*/) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array*/ = [];\n\tvar commentList/*:Array*/ = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array*/ = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"\" + a + \"\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"\" + \"tc=\" + w.ID + \"\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"SheetJ5\"); }\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [];\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\telse d[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tts.push(c.t||\"\");\n\t\t});\n\t\to.push('');\n\t\tif(ts.length <= 1) o.push(writetag(\"t\", escapexml(ts[0]||\"\")));\n\t\telse {\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t}\n\t\to.push('');\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '': case '': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '': pass = true; break;\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '
    ': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"\");\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]/*:any*/), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts)/*:Array*/ {\n\tvar out/*:Array*/ = [];\n\tvar authors/*:Array*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* BrtBeginCommentAuthors */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* BrtBeginCommentList */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f/*:string*/, delta/*:Cell*/)/*:string*/ {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob/*::, length, opts*/) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob/*::, length, opts*/) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob/*::, length, opts*/) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob/*::, length:number, opts*/) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts)/*:Array*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array*/ = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob/*::, length*/) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff/*:number*/) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o/*:Array>*/ = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob/*::, length, opts*/) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob/*::, length, opts*/) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n\t/*::[*/0x01/*::]*/: { n:'PtgExp', f:parse_PtgExp },\n\t/*::[*/0x02/*::]*/: { n:'PtgTbl', f:parse_PtgTbl },\n\t/*::[*/0x03/*::]*/: { n:'PtgAdd', f:parseread1 },\n\t/*::[*/0x04/*::]*/: { n:'PtgSub', f:parseread1 },\n\t/*::[*/0x05/*::]*/: { n:'PtgMul', f:parseread1 },\n\t/*::[*/0x06/*::]*/: { n:'PtgDiv', f:parseread1 },\n\t/*::[*/0x07/*::]*/: { n:'PtgPower', f:parseread1 },\n\t/*::[*/0x08/*::]*/: { n:'PtgConcat', f:parseread1 },\n\t/*::[*/0x09/*::]*/: { n:'PtgLt', f:parseread1 },\n\t/*::[*/0x0A/*::]*/: { n:'PtgLe', f:parseread1 },\n\t/*::[*/0x0B/*::]*/: { n:'PtgEq', f:parseread1 },\n\t/*::[*/0x0C/*::]*/: { n:'PtgGe', f:parseread1 },\n\t/*::[*/0x0D/*::]*/: { n:'PtgGt', f:parseread1 },\n\t/*::[*/0x0E/*::]*/: { n:'PtgNe', f:parseread1 },\n\t/*::[*/0x0F/*::]*/: { n:'PtgIsect', f:parseread1 },\n\t/*::[*/0x10/*::]*/: { n:'PtgUnion', f:parseread1 },\n\t/*::[*/0x11/*::]*/: { n:'PtgRange', f:parseread1 },\n\t/*::[*/0x12/*::]*/: { n:'PtgUplus', f:parseread1 },\n\t/*::[*/0x13/*::]*/: { n:'PtgUminus', f:parseread1 },\n\t/*::[*/0x14/*::]*/: { n:'PtgPercent', f:parseread1 },\n\t/*::[*/0x15/*::]*/: { n:'PtgParen', f:parseread1 },\n\t/*::[*/0x16/*::]*/: { n:'PtgMissArg', f:parseread1 },\n\t/*::[*/0x17/*::]*/: { n:'PtgStr', f:parse_PtgStr },\n\t/*::[*/0x1A/*::]*/: { n:'PtgSheet', f:parse_PtgSheet },\n\t/*::[*/0x1B/*::]*/: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t/*::[*/0x1C/*::]*/: { n:'PtgErr', f:parse_PtgErr },\n\t/*::[*/0x1D/*::]*/: { n:'PtgBool', f:parse_PtgBool },\n\t/*::[*/0x1E/*::]*/: { n:'PtgInt', f:parse_PtgInt },\n\t/*::[*/0x1F/*::]*/: { n:'PtgNum', f:parse_PtgNum },\n\t/*::[*/0x20/*::]*/: { n:'PtgArray', f:parse_PtgArray },\n\t/*::[*/0x21/*::]*/: { n:'PtgFunc', f:parse_PtgFunc },\n\t/*::[*/0x22/*::]*/: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t/*::[*/0x23/*::]*/: { n:'PtgName', f:parse_PtgName },\n\t/*::[*/0x24/*::]*/: { n:'PtgRef', f:parse_PtgRef },\n\t/*::[*/0x25/*::]*/: { n:'PtgArea', f:parse_PtgArea },\n\t/*::[*/0x26/*::]*/: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t/*::[*/0x27/*::]*/: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t/*::[*/0x28/*::]*/: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t/*::[*/0x29/*::]*/: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t/*::[*/0x2A/*::]*/: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t/*::[*/0x2B/*::]*/: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t/*::[*/0x2C/*::]*/: { n:'PtgRefN', f:parse_PtgRefN },\n\t/*::[*/0x2D/*::]*/: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t/*::[*/0x2E/*::]*/: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t/*::[*/0x2F/*::]*/: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t/*::[*/0x39/*::]*/: { n:'PtgNameX', f:parse_PtgNameX },\n\t/*::[*/0x3A/*::]*/: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t/*::[*/0x3B/*::]*/: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t/*::[*/0x3C/*::]*/: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t/*::[*/0x3D/*::]*/: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t/*::[*/0xFF/*::]*/: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t/*::[*/0x40/*::]*/: 0x20, /*::[*/0x60/*::]*/: 0x20,\n\t/*::[*/0x41/*::]*/: 0x21, /*::[*/0x61/*::]*/: 0x21,\n\t/*::[*/0x42/*::]*/: 0x22, /*::[*/0x62/*::]*/: 0x22,\n\t/*::[*/0x43/*::]*/: 0x23, /*::[*/0x63/*::]*/: 0x23,\n\t/*::[*/0x44/*::]*/: 0x24, /*::[*/0x64/*::]*/: 0x24,\n\t/*::[*/0x45/*::]*/: 0x25, /*::[*/0x65/*::]*/: 0x25,\n\t/*::[*/0x46/*::]*/: 0x26, /*::[*/0x66/*::]*/: 0x26,\n\t/*::[*/0x47/*::]*/: 0x27, /*::[*/0x67/*::]*/: 0x27,\n\t/*::[*/0x48/*::]*/: 0x28, /*::[*/0x68/*::]*/: 0x28,\n\t/*::[*/0x49/*::]*/: 0x29, /*::[*/0x69/*::]*/: 0x29,\n\t/*::[*/0x4A/*::]*/: 0x2A, /*::[*/0x6A/*::]*/: 0x2A,\n\t/*::[*/0x4B/*::]*/: 0x2B, /*::[*/0x6B/*::]*/: 0x2B,\n\t/*::[*/0x4C/*::]*/: 0x2C, /*::[*/0x6C/*::]*/: 0x2C,\n\t/*::[*/0x4D/*::]*/: 0x2D, /*::[*/0x6D/*::]*/: 0x2D,\n\t/*::[*/0x4E/*::]*/: 0x2E, /*::[*/0x6E/*::]*/: 0x2E,\n\t/*::[*/0x4F/*::]*/: 0x2F, /*::[*/0x6F/*::]*/: 0x2F,\n\t/*::[*/0x58/*::]*/: 0x22, /*::[*/0x78/*::]*/: 0x22,\n\t/*::[*/0x59/*::]*/: 0x39, /*::[*/0x79/*::]*/: 0x39,\n\t/*::[*/0x5A/*::]*/: 0x3A, /*::[*/0x7A/*::]*/: 0x3A,\n\t/*::[*/0x5B/*::]*/: 0x3B, /*::[*/0x7B/*::]*/: 0x3B,\n\t/*::[*/0x5C/*::]*/: 0x3C, /*::[*/0x7C/*::]*/: 0x3C,\n\t/*::[*/0x5D/*::]*/: 0x3D, /*::[*/0x7D/*::]*/: 0x3D\n};\n\nvar Ptg18 = {\n\t/*::[*/0x01/*::]*/: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t/*::[*/0x02/*::]*/: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t/*::[*/0x03/*::]*/: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t/*::[*/0x06/*::]*/: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t/*::[*/0x07/*::]*/: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t/*::[*/0x0A/*::]*/: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t/*::[*/0x0B/*::]*/: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t/*::[*/0x0D/*::]*/: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t/*::[*/0x0F/*::]*/: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t/*::[*/0x10/*::]*/: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t/*::[*/0x19/*::]*/: { n:'PtgList', f:parse_PtgList },\n\t/*::[*/0x1D/*::]*/: { n:'PtgSxName', f:parse_PtgSxName },\n\t/*::[*/0xFF/*::]*/: {}\n};\nvar Ptg19 = {\n\t/*::[*/0x00/*::]*/: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t/*::[*/0x01/*::]*/: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t/*::[*/0x02/*::]*/: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t/*::[*/0x04/*::]*/: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t/*::[*/0x08/*::]*/: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t/*::[*/0x10/*::]*/: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t/*::[*/0x20/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x21/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x40/*::]*/: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t/*::[*/0x41/*::]*/: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t/*::[*/0x80/*::]*/: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t/*::[*/0xFF/*::]*/: {}\n};\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id] || PtgTypes[PtgDupes[id]];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f/*:Array>*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array*/ = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack/*:Array*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]/*:any*/);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(/*::String(*/f[1]/*::)*/);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(/*::(*/f[1]/*:: :any)*/) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts/*::, ref*/) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f/*:string*/)/*:string*/ {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r/*:string*/)/*:[string, string]*/ {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r/*:string*/)/*:string*/ {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles/*:Array*/, cell/*:Cell*/, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF_load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[fmtid] == null) SSF_load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = dd.toString(10);\n\t\t\t\telse p.w = SSF_general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF_general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF_format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF_format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws/*:Worksheet*/, s/*:string*/) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array*/ = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges/*:Array*/ = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges/*:Array*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array*/, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin)/*:string*/ {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell/*:Cell*/, ref, ws, opts/*::, idx, wb*/)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z' && !cell.f) return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, themes, styles) {\n\tvar ri = 0, x = \"\", cells/*:Array*/ = [], cref/*:?Array*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows/*:Array*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"}/*:any*/);\n\n\t\t\tif((cref=d.match(match_v))!= null && /*::cref != null && */cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && /*::cref != null && */cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array*/ = [], r/*:Array*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr}/*:any*/);\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1}/*:any*/);\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(/*::(*/ws['!links']/*::||[])*/.length > 0) {\n\t\to[o.length] = \"\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({}/*:any*/);\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R/*:number*/, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 0x0000 /* BrtRowHdr */, o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\n}\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(8 + 4 * cell.v.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length/*::, opts*/) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s/*:Worksheet*/ = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\n\trecordhopper(data, function ws_parse(val, RR, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t\tcase 'is': p.t = 's'; p.v = val[1].t; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && fmt_is_date(table_fmt[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/)/*:boolean*/ {\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || table_fmt[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o/*:any*/ = ({r:R, c:C}/*:any*/);\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array*/ = [];\n\twrite_record(ba, 0x0091 /* BrtBeginSheetData */);\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* BrtBeginWsView */, write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* BrtMargins */, write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array, string, ?string]*/ {\n\tvar col/*:Array*/ = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb/*:Workbook*/)/*:string*/ {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = /*#__PURE__*/\"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts)/*:WorkbookFile*/ {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = /*::(*/{ AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" }/*::)*/;\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data/*:?WBProps*/, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula}/*:any*/);\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* BrtBeginBundleShs */);\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* BrtEndBundleShs */);\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb/*::, opts*/) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* BrtEndBookViews */);\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* BrtWbProp */, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, 0x009D BrtCalcProp, write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_theme(data/*:string*/, name/*:string*/, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\n\nfunction write_wb(wb, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data/*:SST*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data/*:Array*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\n\nfunction write_xlmeta(name/*:string*/) {\n\treturn (name.slice(-4)===\".bin\" ? write_xlmeta_bin : write_xlmeta_xml)();\n}\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag/*:string*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value)/*:string*/ {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF_general(value);\n\treturn SSF_format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val/*:string*/) {\n\tvar oval/*:any*/ = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell/*:Cell*/, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = cell.v.toString(10);\n\t\t\t\telse cell.w = SSF_general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF_general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && fmt_is_date(z)) {\n\t\t\tvar _d = SSF_parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell/*:any*/, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_ssf();\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof $cptable !== 'undefined') str = $cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array*/ = [], cursheet/*:Worksheet*/ = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF_load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*:DefinedName*/ = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64_decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml(/*::wb, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array*/ = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array*/ = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments/*:Array*/)/*:string*/ {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R/*:number*/, row)/*:string*/ {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array*/ = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k/*:any*/ = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"
    \" + t + \"
    \");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d/*:Array*/ = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m/*:number*/ = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002f /* FilePass */: case 0x0195 /* FileLock */: case 0x00e1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF_general(p.v);\n\t\t}\n\t\telse p.w = SSF_format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ((options.dense ? [] : {})/*:any*/);\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_RT === 0x000a /* EOF */) break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* 'BOF' */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* FilePass */:\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* SupBook */:\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* Lbl */:\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t}/*:DefinedName*/);\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* ExternSheet */:\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 0x0894 /* NameCmt */:\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* BoundSheet8 */: {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 0x000a /* EOF */: {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t/*::[*/0x0009/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0209/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0409/*::]*/:4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t/*::[*/0x0200/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0300/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0400/*::]*/:4,\n\t\t\t\t\t\t/*::[*/0x0500/*::]*/:5,\n\t\t\t\t\t\t/*::[*/0x0600/*::]*/:8,\n\t\t\t\t\t\t/*::[*/0x0002/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0007/*::]*/:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\n\t\t\t\t\tif(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* BIFF2INT */: {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00bd /* MulRk */: {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0006: case 0x0206: case 0x0406 /* Formula */: {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x0007: case 0x0207 /* String */: {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 0x0021: case 0x0221 /* Array */: {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x04bc /* ShrFmla */: {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00be /* MulBlank */: if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* BIFF2STR */:\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 0x0000: case 0x0200 /* Dimensions */: {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* Format */: { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF_load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF_load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF_load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* HLink */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0800 /* HLinkTooltip */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x001c /* Note */: {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* ColInfo */: {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0208 /* Row */: {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* Setup */: // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x023e /* Window2 */: // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb/*:CFBContainer*/, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64_decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(/*::((*/cfb/*:: :any):CFBContainer)*/, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t/*::[*/0x0000/*::]*/: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t/*::[*/0x0006/*::]*/: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t/*::[*/0x0007/*::]*/: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t/*::[*/0x000A/*::]*/: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t/*::[*/0x000B/*::]*/: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t/*::[*/0x000C/*::]*/: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t/*::[*/0x000D/*::]*/: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t/*::[*/0x000E/*::]*/: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t/*::[*/0x000F/*::]*/: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t/*::[*/0x0010/*::]*/: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t/*::[*/0x0011/*::]*/: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t/*::[*/0x0012/*::]*/: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t/*::[*/0x0013/*::]*/: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t/*::[*/0x0014/*::]*/: { /* n:\"BrtPCDIMissing\" */ },\n\t/*::[*/0x0015/*::]*/: { /* n:\"BrtPCDINumber\" */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"BrtPCDIBoolean\" */ },\n\t/*::[*/0x0017/*::]*/: { /* n:\"BrtPCDIError\" */ },\n\t/*::[*/0x0018/*::]*/: { /* n:\"BrtPCDIString\" */ },\n\t/*::[*/0x0019/*::]*/: { /* n:\"BrtPCDIDatetime\" */ },\n\t/*::[*/0x001A/*::]*/: { /* n:\"BrtPCDIIndex\" */ },\n\t/*::[*/0x001B/*::]*/: { /* n:\"BrtPCDIAMissing\" */ },\n\t/*::[*/0x001C/*::]*/: { /* n:\"BrtPCDIANumber\" */ },\n\t/*::[*/0x001D/*::]*/: { /* n:\"BrtPCDIABoolean\" */ },\n\t/*::[*/0x001E/*::]*/: { /* n:\"BrtPCDIAError\" */ },\n\t/*::[*/0x001F/*::]*/: { /* n:\"BrtPCDIAString\" */ },\n\t/*::[*/0x0020/*::]*/: { /* n:\"BrtPCDIADatetime\" */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"BrtPCRRecord\" */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"BrtPCRRecordDt\" */ },\n\t/*::[*/0x0023/*::]*/: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t/*::[*/0x0024/*::]*/: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t/*::[*/0x0025/*::]*/: { /* n:\"BrtACBegin\", */ T:1 },\n\t/*::[*/0x0026/*::]*/: { /* n:\"BrtACEnd\", */ T:-1 },\n\t/*::[*/0x0027/*::]*/: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t/*::[*/0x0028/*::]*/: { /* n:\"BrtIndexRowBlock\" */ },\n\t/*::[*/0x002A/*::]*/: { /* n:\"BrtIndexBlock\" */ },\n\t/*::[*/0x002B/*::]*/: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t/*::[*/0x002C/*::]*/: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t/*::[*/0x002D/*::]*/: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t/*::[*/0x002E/*::]*/: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t/*::[*/0x002F/*::]*/: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t/*::[*/0x0030/*::]*/: { /* n:\"BrtStyle\" */ },\n\t/*::[*/0x0031/*::]*/: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t/*::[*/0x0032/*::]*/: { /* n:\"BrtValueMeta\" */ },\n\t/*::[*/0x0033/*::]*/: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t/*::[*/0x0034/*::]*/: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t/*::[*/0x0035/*::]*/: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t/*::[*/0x0036/*::]*/: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t/*::[*/0x0037/*::]*/: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t/*::[*/0x0038/*::]*/: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t/*::[*/0x0039/*::]*/: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t/*::[*/0x003A/*::]*/: { /* n:\"BrtMdxMbrIstr\" */ },\n\t/*::[*/0x003B/*::]*/: { /* n:\"BrtStr\" */ },\n\t/*::[*/0x003C/*::]*/: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x003E/*::]*/: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t/*::[*/0x003F/*::]*/: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t/*::[*/0x0040/*::]*/: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t/*::[*/0x0041/*::]*/: { /* n:\"BrtSxvcellNum\" */ },\n\t/*::[*/0x0042/*::]*/: { /* n:\"BrtSxvcellStr\" */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BrtSxvcellBool\" */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BrtSxvcellErr\" */ },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BrtSxvcellDate\" */ },\n\t/*::[*/0x0046/*::]*/: { /* n:\"BrtSxvcellNil\" */ },\n\t/*::[*/0x0080/*::]*/: { /* n:\"BrtFileVersion\" */ },\n\t/*::[*/0x0081/*::]*/: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t/*::[*/0x0082/*::]*/: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t/*::[*/0x0084/*::]*/: { /* n:\"BrtEndBook\", */ T:-1 },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t/*::[*/0x0087/*::]*/: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t/*::[*/0x0088/*::]*/: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t/*::[*/0x0089/*::]*/: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t/*::[*/0x008A/*::]*/: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t/*::[*/0x008B/*::]*/: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t/*::[*/0x008C/*::]*/: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t/*::[*/0x008D/*::]*/: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t/*::[*/0x008E/*::]*/: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t/*::[*/0x008F/*::]*/: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t/*::[*/0x0091/*::]*/: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t/*::[*/0x0092/*::]*/: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t/*::[*/0x0093/*::]*/: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t/*::[*/0x0094/*::]*/: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t/*::[*/0x0097/*::]*/: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t/*::[*/0x0098/*::]*/: { /* n:\"BrtSel\" */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t/*::[*/0x009A/*::]*/: { /* n:\"BrtWbFactoid\" */ },\n\t/*::[*/0x009B/*::]*/: { /* n:\"BrtFileRecover\" */ },\n\t/*::[*/0x009C/*::]*/: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t/*::[*/0x009D/*::]*/: { /* n:\"BrtCalcProp\" */ },\n\t/*::[*/0x009E/*::]*/: { /* n:\"BrtBookView\" */ },\n\t/*::[*/0x009F/*::]*/: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t/*::[*/0x00A0/*::]*/: { /* n:\"BrtEndSst\", */ T:-1 },\n\t/*::[*/0x00A1/*::]*/: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t/*::[*/0x00A2/*::]*/: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t/*::[*/0x00A3/*::]*/: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t/*::[*/0x00A4/*::]*/: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t/*::[*/0x00A5/*::]*/: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t/*::[*/0x00A6/*::]*/: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t/*::[*/0x00A7/*::]*/: { /* n:\"BrtFilter\" */ },\n\t/*::[*/0x00A8/*::]*/: { /* n:\"BrtColorFilter\" */ },\n\t/*::[*/0x00A9/*::]*/: { /* n:\"BrtIconFilter\" */ },\n\t/*::[*/0x00AA/*::]*/: { /* n:\"BrtTop10Filter\" */ },\n\t/*::[*/0x00AB/*::]*/: { /* n:\"BrtDynamicFilter\" */ },\n\t/*::[*/0x00AC/*::]*/: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t/*::[*/0x00AD/*::]*/: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t/*::[*/0x00AE/*::]*/: { /* n:\"BrtCustomFilter\" */ },\n\t/*::[*/0x00AF/*::]*/: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t/*::[*/0x00B0/*::]*/: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t/*::[*/0x00B1/*::]*/: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t/*::[*/0x00B2/*::]*/: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t/*::[*/0x00B3/*::]*/: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t/*::[*/0x00B4/*::]*/: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t/*::[*/0x00B5/*::]*/: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t/*::[*/0x00B6/*::]*/: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t/*::[*/0x00B7/*::]*/: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t/*::[*/0x00B8/*::]*/: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t/*::[*/0x00B9/*::]*/: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t/*::[*/0x00BA/*::]*/: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t/*::[*/0x00BB/*::]*/: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t/*::[*/0x00BC/*::]*/: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t/*::[*/0x00BD/*::]*/: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t/*::[*/0x00BE/*::]*/: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t/*::[*/0x00BF/*::]*/: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t/*::[*/0x00C0/*::]*/: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t/*::[*/0x00C1/*::]*/: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t/*::[*/0x00C2/*::]*/: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t/*::[*/0x00C3/*::]*/: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t/*::[*/0x00C4/*::]*/: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t/*::[*/0x00C5/*::]*/: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t/*::[*/0x00C6/*::]*/: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t/*::[*/0x00C7/*::]*/: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t/*::[*/0x00C8/*::]*/: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t/*::[*/0x00C9/*::]*/: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t/*::[*/0x00CA/*::]*/: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t/*::[*/0x00CB/*::]*/: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t/*::[*/0x00CC/*::]*/: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t/*::[*/0x00CD/*::]*/: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t/*::[*/0x00CE/*::]*/: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t/*::[*/0x00CF/*::]*/: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t/*::[*/0x00D0/*::]*/: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t/*::[*/0x00D1/*::]*/: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t/*::[*/0x00D2/*::]*/: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t/*::[*/0x00D3/*::]*/: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t/*::[*/0x00D4/*::]*/: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t/*::[*/0x00D5/*::]*/: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t/*::[*/0x00D6/*::]*/: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t/*::[*/0x00D7/*::]*/: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t/*::[*/0x00D8/*::]*/: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t/*::[*/0x00D9/*::]*/: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t/*::[*/0x00DA/*::]*/: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t/*::[*/0x00DB/*::]*/: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t/*::[*/0x00DC/*::]*/: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t/*::[*/0x00DD/*::]*/: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t/*::[*/0x00DE/*::]*/: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t/*::[*/0x00DF/*::]*/: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t/*::[*/0x00E0/*::]*/: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t/*::[*/0x00E1/*::]*/: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t/*::[*/0x00E2/*::]*/: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t/*::[*/0x00E3/*::]*/: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t/*::[*/0x00E4/*::]*/: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t/*::[*/0x00E5/*::]*/: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t/*::[*/0x00E6/*::]*/: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t/*::[*/0x00E7/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t/*::[*/0x00E8/*::]*/: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t/*::[*/0x00E9/*::]*/: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t/*::[*/0x00EA/*::]*/: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t/*::[*/0x00EB/*::]*/: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t/*::[*/0x00EC/*::]*/: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t/*::[*/0x00ED/*::]*/: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t/*::[*/0x00EE/*::]*/: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t/*::[*/0x00EF/*::]*/: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t/*::[*/0x00F0/*::]*/: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t/*::[*/0x00F1/*::]*/: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t/*::[*/0x00F2/*::]*/: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t/*::[*/0x00F3/*::]*/: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t/*::[*/0x00F4/*::]*/: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t/*::[*/0x00F5/*::]*/: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t/*::[*/0x00F6/*::]*/: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t/*::[*/0x00F7/*::]*/: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t/*::[*/0x00F8/*::]*/: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t/*::[*/0x00F9/*::]*/: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t/*::[*/0x00FA/*::]*/: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t/*::[*/0x00FB/*::]*/: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t/*::[*/0x00FC/*::]*/: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t/*::[*/0x00FD/*::]*/: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t/*::[*/0x00FE/*::]*/: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t/*::[*/0x00FF/*::]*/: { /* n:\"BrtBeginPName\", */ T:1 },\n\t/*::[*/0x0100/*::]*/: { /* n:\"BrtEndPName\", */ T:-1 },\n\t/*::[*/0x0101/*::]*/: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t/*::[*/0x0102/*::]*/: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t/*::[*/0x0103/*::]*/: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t/*::[*/0x0104/*::]*/: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t/*::[*/0x0105/*::]*/: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t/*::[*/0x0106/*::]*/: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t/*::[*/0x0107/*::]*/: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t/*::[*/0x0108/*::]*/: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t/*::[*/0x0109/*::]*/: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t/*::[*/0x010A/*::]*/: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t/*::[*/0x010B/*::]*/: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t/*::[*/0x010C/*::]*/: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t/*::[*/0x010D/*::]*/: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t/*::[*/0x010E/*::]*/: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t/*::[*/0x010F/*::]*/: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t/*::[*/0x0110/*::]*/: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t/*::[*/0x0111/*::]*/: { /* n:\"BrtBeginDims\", */ T:1 },\n\t/*::[*/0x0112/*::]*/: { /* n:\"BrtEndDims\", */ T:-1 },\n\t/*::[*/0x0113/*::]*/: { /* n:\"BrtBeginDim\", */ T:1 },\n\t/*::[*/0x0114/*::]*/: { /* n:\"BrtEndDim\", */ T:-1 },\n\t/*::[*/0x0115/*::]*/: { /* n:\"BrtIndexPartEnd\" */ },\n\t/*::[*/0x0116/*::]*/: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t/*::[*/0x0117/*::]*/: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t/*::[*/0x0118/*::]*/: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t/*::[*/0x0119/*::]*/: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t/*::[*/0x011A/*::]*/: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t/*::[*/0x011B/*::]*/: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t/*::[*/0x011C/*::]*/: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t/*::[*/0x011D/*::]*/: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t/*::[*/0x011E/*::]*/: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t/*::[*/0x011F/*::]*/: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t/*::[*/0x0120/*::]*/: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t/*::[*/0x0121/*::]*/: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t/*::[*/0x0122/*::]*/: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t/*::[*/0x0123/*::]*/: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t/*::[*/0x0124/*::]*/: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t/*::[*/0x0125/*::]*/: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t/*::[*/0x0126/*::]*/: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t/*::[*/0x0127/*::]*/: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t/*::[*/0x0128/*::]*/: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t/*::[*/0x0129/*::]*/: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t/*::[*/0x012A/*::]*/: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t/*::[*/0x012B/*::]*/: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t/*::[*/0x012C/*::]*/: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t/*::[*/0x012D/*::]*/: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t/*::[*/0x012E/*::]*/: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t/*::[*/0x012F/*::]*/: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t/*::[*/0x0130/*::]*/: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t/*::[*/0x0131/*::]*/: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t/*::[*/0x0132/*::]*/: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t/*::[*/0x0133/*::]*/: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t/*::[*/0x0134/*::]*/: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t/*::[*/0x0135/*::]*/: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t/*::[*/0x0136/*::]*/: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t/*::[*/0x0137/*::]*/: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t/*::[*/0x0138/*::]*/: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t/*::[*/0x0139/*::]*/: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t/*::[*/0x013A/*::]*/: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t/*::[*/0x013B/*::]*/: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t/*::[*/0x013C/*::]*/: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t/*::[*/0x013D/*::]*/: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t/*::[*/0x013E/*::]*/: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t/*::[*/0x013F/*::]*/: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t/*::[*/0x0140/*::]*/: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t/*::[*/0x0141/*::]*/: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t/*::[*/0x0142/*::]*/: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t/*::[*/0x0143/*::]*/: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t/*::[*/0x0144/*::]*/: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t/*::[*/0x0145/*::]*/: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t/*::[*/0x0146/*::]*/: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t/*::[*/0x0147/*::]*/: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t/*::[*/0x0148/*::]*/: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t/*::[*/0x0149/*::]*/: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t/*::[*/0x014A/*::]*/: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t/*::[*/0x014B/*::]*/: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t/*::[*/0x014C/*::]*/: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t/*::[*/0x014D/*::]*/: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t/*::[*/0x014E/*::]*/: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t/*::[*/0x014F/*::]*/: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t/*::[*/0x0150/*::]*/: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t/*::[*/0x0151/*::]*/: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t/*::[*/0x0152/*::]*/: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t/*::[*/0x0153/*::]*/: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t/*::[*/0x0154/*::]*/: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t/*::[*/0x0155/*::]*/: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t/*::[*/0x0156/*::]*/: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t/*::[*/0x0157/*::]*/: { /* n:\"BrtBeginList\", */ T:1 },\n\t/*::[*/0x0158/*::]*/: { /* n:\"BrtEndList\", */ T:-1 },\n\t/*::[*/0x0159/*::]*/: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t/*::[*/0x015A/*::]*/: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t/*::[*/0x015B/*::]*/: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t/*::[*/0x015C/*::]*/: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t/*::[*/0x015D/*::]*/: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t/*::[*/0x015E/*::]*/: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t/*::[*/0x015F/*::]*/: { /* n:\"BrtListCCFmla\" */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"BrtListTrFmla\" */ },\n\t/*::[*/0x0161/*::]*/: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t/*::[*/0x0162/*::]*/: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t/*::[*/0x0163/*::]*/: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t/*::[*/0x0165/*::]*/: { /* n:\"BrtSupSelf\" */ },\n\t/*::[*/0x0166/*::]*/: { /* n:\"BrtSupSame\" */ },\n\t/*::[*/0x0167/*::]*/: { /* n:\"BrtSupTabs\" */ },\n\t/*::[*/0x0168/*::]*/: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t/*::[*/0x0169/*::]*/: { /* n:\"BrtPlaceholderName\" */ },\n\t/*::[*/0x016A/*::]*/: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x016B/*::]*/: { /* n:\"BrtExternTableStart\" */ },\n\t/*::[*/0x016C/*::]*/: { /* n:\"BrtExternTableEnd\" */ },\n\t/*::[*/0x016E/*::]*/: { /* n:\"BrtExternRowHdr\" */ },\n\t/*::[*/0x016F/*::]*/: { /* n:\"BrtExternCellBlank\" */ },\n\t/*::[*/0x0170/*::]*/: { /* n:\"BrtExternCellReal\" */ },\n\t/*::[*/0x0171/*::]*/: { /* n:\"BrtExternCellBool\" */ },\n\t/*::[*/0x0172/*::]*/: { /* n:\"BrtExternCellError\" */ },\n\t/*::[*/0x0173/*::]*/: { /* n:\"BrtExternCellString\" */ },\n\t/*::[*/0x0174/*::]*/: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t/*::[*/0x0175/*::]*/: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t/*::[*/0x0176/*::]*/: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t/*::[*/0x0177/*::]*/: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t/*::[*/0x0178/*::]*/: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t/*::[*/0x0179/*::]*/: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t/*::[*/0x017A/*::]*/: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t/*::[*/0x017B/*::]*/: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t/*::[*/0x017C/*::]*/: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t/*::[*/0x017D/*::]*/: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t/*::[*/0x017E/*::]*/: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t/*::[*/0x017F/*::]*/: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t/*::[*/0x0180/*::]*/: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0181/*::]*/: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0182/*::]*/: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t/*::[*/0x0183/*::]*/: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t/*::[*/0x0184/*::]*/: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t/*::[*/0x0185/*::]*/: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t/*::[*/0x0186/*::]*/: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t/*::[*/0x0187/*::]*/: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t/*::[*/0x0188/*::]*/: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t/*::[*/0x0189/*::]*/: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t/*::[*/0x018A/*::]*/: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t/*::[*/0x018B/*::]*/: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t/*::[*/0x018C/*::]*/: { /* n:\"BrtBrk\" */ },\n\t/*::[*/0x018D/*::]*/: { /* n:\"BrtUserBookView\" */ },\n\t/*::[*/0x018E/*::]*/: { /* n:\"BrtInfo\" */ },\n\t/*::[*/0x018F/*::]*/: { /* n:\"BrtCUsr\" */ },\n\t/*::[*/0x0190/*::]*/: { /* n:\"BrtUsr\" */ },\n\t/*::[*/0x0191/*::]*/: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t/*::[*/0x0193/*::]*/: { /* n:\"BrtEOF\" */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"BrtUCR\" */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"BrtRRInsDel\" */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"BrtRREndInsDel\" */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BrtRRMove\" */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"BrtRREndMove\" */ },\n\t/*::[*/0x0199/*::]*/: { /* n:\"BrtRRChgCell\" */ },\n\t/*::[*/0x019A/*::]*/: { /* n:\"BrtRREndChgCell\" */ },\n\t/*::[*/0x019B/*::]*/: { /* n:\"BrtRRHeader\" */ },\n\t/*::[*/0x019C/*::]*/: { /* n:\"BrtRRUserView\" */ },\n\t/*::[*/0x019D/*::]*/: { /* n:\"BrtRRRenSheet\" */ },\n\t/*::[*/0x019E/*::]*/: { /* n:\"BrtRRInsertSh\" */ },\n\t/*::[*/0x019F/*::]*/: { /* n:\"BrtRRDefName\" */ },\n\t/*::[*/0x01A0/*::]*/: { /* n:\"BrtRRNote\" */ },\n\t/*::[*/0x01A1/*::]*/: { /* n:\"BrtRRConflict\" */ },\n\t/*::[*/0x01A2/*::]*/: { /* n:\"BrtRRTQSIF\" */ },\n\t/*::[*/0x01A3/*::]*/: { /* n:\"BrtRRFormat\" */ },\n\t/*::[*/0x01A4/*::]*/: { /* n:\"BrtRREndFormat\" */ },\n\t/*::[*/0x01A5/*::]*/: { /* n:\"BrtRRAutoFmt\" */ },\n\t/*::[*/0x01A6/*::]*/: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t/*::[*/0x01A7/*::]*/: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t/*::[*/0x01A8/*::]*/: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t/*::[*/0x01A9/*::]*/: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t/*::[*/0x01AA/*::]*/: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t/*::[*/0x01AB/*::]*/: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t/*::[*/0x01AC/*::]*/: { /* n:\"BrtTable\" */ },\n\t/*::[*/0x01AD/*::]*/: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t/*::[*/0x01AE/*::]*/: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t/*::[*/0x01AF/*::]*/: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t/*::[*/0x01B0/*::]*/: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t/*::[*/0x01B1/*::]*/: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t/*::[*/0x01B2/*::]*/: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t/*::[*/0x01B3/*::]*/: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t/*::[*/0x01B4/*::]*/: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t/*::[*/0x01B5/*::]*/: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t/*::[*/0x01B6/*::]*/: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t/*::[*/0x01B7/*::]*/: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t/*::[*/0x01B8/*::]*/: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t/*::[*/0x01B9/*::]*/: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t/*::[*/0x01BA/*::]*/: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t/*::[*/0x01BB/*::]*/: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t/*::[*/0x01BC/*::]*/: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t/*::[*/0x01BD/*::]*/: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t/*::[*/0x01BE/*::]*/: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t/*::[*/0x01BF/*::]*/: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t/*::[*/0x01C0/*::]*/: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t/*::[*/0x01C1/*::]*/: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t/*::[*/0x01C2/*::]*/: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t/*::[*/0x01C3/*::]*/: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t/*::[*/0x01C4/*::]*/: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t/*::[*/0x01C5/*::]*/: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t/*::[*/0x01C6/*::]*/: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t/*::[*/0x01C7/*::]*/: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t/*::[*/0x01C8/*::]*/: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t/*::[*/0x01C9/*::]*/: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t/*::[*/0x01CA/*::]*/: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t/*::[*/0x01CB/*::]*/: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t/*::[*/0x01CC/*::]*/: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t/*::[*/0x01CD/*::]*/: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t/*::[*/0x01CE/*::]*/: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t/*::[*/0x01CF/*::]*/: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t/*::[*/0x01D0/*::]*/: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t/*::[*/0x01D1/*::]*/: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t/*::[*/0x01D2/*::]*/: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t/*::[*/0x01D3/*::]*/: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t/*::[*/0x01D4/*::]*/: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t/*::[*/0x01D5/*::]*/: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t/*::[*/0x01D6/*::]*/: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t/*::[*/0x01D7/*::]*/: { /* n:\"BrtCFVO\" */ },\n\t/*::[*/0x01D8/*::]*/: { /* n:\"BrtExternValueMeta\" */ },\n\t/*::[*/0x01D9/*::]*/: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t/*::[*/0x01DA/*::]*/: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t/*::[*/0x01DB/*::]*/: { /* n:\"BrtIndexedColor\" */ },\n\t/*::[*/0x01DC/*::]*/: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t/*::[*/0x01DD/*::]*/: { /* n:\"BrtPrintOptions\" */ },\n\t/*::[*/0x01DE/*::]*/: { /* n:\"BrtPageSetup\" */ },\n\t/*::[*/0x01DF/*::]*/: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t/*::[*/0x01E0/*::]*/: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t/*::[*/0x01E1/*::]*/: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t/*::[*/0x01E2/*::]*/: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t/*::[*/0x01E3/*::]*/: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t/*::[*/0x01E4/*::]*/: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t/*::[*/0x01E5/*::]*/: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t/*::[*/0x01E6/*::]*/: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t/*::[*/0x01E7/*::]*/: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t/*::[*/0x01E8/*::]*/: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t/*::[*/0x01E9/*::]*/: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t/*::[*/0x01EA/*::]*/: { /* n:\"BrtBeginMG\", */ T:1 },\n\t/*::[*/0x01EB/*::]*/: { /* n:\"BrtEndMG\", */ T:-1 },\n\t/*::[*/0x01EC/*::]*/: { /* n:\"BrtBeginMap\", */ T:1 },\n\t/*::[*/0x01ED/*::]*/: { /* n:\"BrtEndMap\", */ T:-1 },\n\t/*::[*/0x01EE/*::]*/: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t/*::[*/0x01EF/*::]*/: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t/*::[*/0x01F0/*::]*/: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t/*::[*/0x01F1/*::]*/: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t/*::[*/0x01F2/*::]*/: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t/*::[*/0x01F3/*::]*/: { /* n:\"BrtDRef\" */ },\n\t/*::[*/0x01F4/*::]*/: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t/*::[*/0x01F5/*::]*/: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t/*::[*/0x01F6/*::]*/: { /* n:\"BrtBeginSct\", */ T:1 },\n\t/*::[*/0x01F7/*::]*/: { /* n:\"BrtEndSct\", */ T:-1 },\n\t/*::[*/0x01F8/*::]*/: { /* n:\"BrtSlc\" */ },\n\t/*::[*/0x01F9/*::]*/: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t/*::[*/0x01FA/*::]*/: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t/*::[*/0x01FB/*::]*/: { /* n:\"BrtDXF\" */ },\n\t/*::[*/0x01FC/*::]*/: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t/*::[*/0x01FD/*::]*/: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t/*::[*/0x01FE/*::]*/: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t/*::[*/0x01FF/*::]*/: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"BrtTableStyleElement\" */ },\n\t/*::[*/0x0201/*::]*/: { /* n:\"BrtTableStyleClient\" */ },\n\t/*::[*/0x0202/*::]*/: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t/*::[*/0x0203/*::]*/: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t/*::[*/0x0204/*::]*/: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t/*::[*/0x0206/*::]*/: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t/*::[*/0x0207/*::]*/: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t/*::[*/0x0208/*::]*/: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t/*::[*/0x020A/*::]*/: { /* n:\"BrtVolSubtopic\" */ },\n\t/*::[*/0x020B/*::]*/: { /* n:\"BrtVolRef\" */ },\n\t/*::[*/0x020C/*::]*/: { /* n:\"BrtVolNum\" */ },\n\t/*::[*/0x020D/*::]*/: { /* n:\"BrtVolErr\" */ },\n\t/*::[*/0x020E/*::]*/: { /* n:\"BrtVolStr\" */ },\n\t/*::[*/0x020F/*::]*/: { /* n:\"BrtVolBool\" */ },\n\t/*::[*/0x0210/*::]*/: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t/*::[*/0x0211/*::]*/: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t/*::[*/0x0212/*::]*/: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t/*::[*/0x0213/*::]*/: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t/*::[*/0x0214/*::]*/: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t/*::[*/0x0215/*::]*/: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t/*::[*/0x0216/*::]*/: { /* n:\"BrtBookProtection\" */ },\n\t/*::[*/0x0217/*::]*/: { /* n:\"BrtSheetProtection\" */ },\n\t/*::[*/0x0218/*::]*/: { /* n:\"BrtRangeProtection\" */ },\n\t/*::[*/0x0219/*::]*/: { /* n:\"BrtPhoneticInfo\" */ },\n\t/*::[*/0x021A/*::]*/: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t/*::[*/0x021B/*::]*/: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t/*::[*/0x021C/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t/*::[*/0x021D/*::]*/: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t/*::[*/0x021E/*::]*/: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t/*::[*/0x0224/*::]*/: { /* n:\"BrtFileSharing\" */ },\n\t/*::[*/0x0225/*::]*/: { /* n:\"BrtOleSize\" */ },\n\t/*::[*/0x0226/*::]*/: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t/*::[*/0x0227/*::]*/: { /* n:\"BrtLegacyDrawing\" */ },\n\t/*::[*/0x0228/*::]*/: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t/*::[*/0x0229/*::]*/: { /* n:\"BrtWebOpt\" */ },\n\t/*::[*/0x022A/*::]*/: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t/*::[*/0x022B/*::]*/: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t/*::[*/0x022C/*::]*/: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t/*::[*/0x022D/*::]*/: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t/*::[*/0x022E/*::]*/: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t/*::[*/0x022F/*::]*/: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t/*::[*/0x0230/*::]*/: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t/*::[*/0x0231/*::]*/: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t/*::[*/0x0232/*::]*/: { /* n:\"BrtBkHim\" */ },\n\t/*::[*/0x0234/*::]*/: { /* n:\"BrtColor\" */ },\n\t/*::[*/0x0235/*::]*/: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t/*::[*/0x0236/*::]*/: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t/*::[*/0x0239/*::]*/: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t/*::[*/0x023A/*::]*/: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t/*::[*/0x023C/*::]*/: { /* n:\"BrtMRUColor\" */ },\n\t/*::[*/0x023D/*::]*/: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t/*::[*/0x023E/*::]*/: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t/*::[*/0x0241/*::]*/: { /* n:\"BrtSupNameStart\" */ },\n\t/*::[*/0x0242/*::]*/: { /* n:\"BrtSupNameValueStart\" */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BrtSupNameValueEnd\" */ },\n\t/*::[*/0x0244/*::]*/: { /* n:\"BrtSupNameNum\" */ },\n\t/*::[*/0x0245/*::]*/: { /* n:\"BrtSupNameErr\" */ },\n\t/*::[*/0x0246/*::]*/: { /* n:\"BrtSupNameSt\" */ },\n\t/*::[*/0x0247/*::]*/: { /* n:\"BrtSupNameNil\" */ },\n\t/*::[*/0x0248/*::]*/: { /* n:\"BrtSupNameBool\" */ },\n\t/*::[*/0x0249/*::]*/: { /* n:\"BrtSupNameFmla\" */ },\n\t/*::[*/0x024A/*::]*/: { /* n:\"BrtSupNameBits\" */ },\n\t/*::[*/0x024B/*::]*/: { /* n:\"BrtSupNameEnd\" */ },\n\t/*::[*/0x024C/*::]*/: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t/*::[*/0x024D/*::]*/: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t/*::[*/0x024E/*::]*/: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t/*::[*/0x024F/*::]*/: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t/*::[*/0x0250/*::]*/: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t/*::[*/0x0251/*::]*/: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t/*::[*/0x0252/*::]*/: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t/*::[*/0x0253/*::]*/: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t/*::[*/0x0254/*::]*/: { /* n:\"BrtSmartTagType\" */ },\n\t/*::[*/0x0255/*::]*/: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t/*::[*/0x0256/*::]*/: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t/*::[*/0x0257/*::]*/: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t/*::[*/0x0258/*::]*/: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t/*::[*/0x0259/*::]*/: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t/*::[*/0x025A/*::]*/: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t/*::[*/0x025B/*::]*/: { /* n:\"BrtBeginFills\", */ T:1 },\n\t/*::[*/0x025C/*::]*/: { /* n:\"BrtEndFills\", */ T:-1 },\n\t/*::[*/0x025D/*::]*/: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t/*::[*/0x025E/*::]*/: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t/*::[*/0x025F/*::]*/: { /* n:\"BrtCellWatch\" */ },\n\t/*::[*/0x0260/*::]*/: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t/*::[*/0x0261/*::]*/: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t/*::[*/0x0262/*::]*/: { /* n:\"BrtCrashRecErr\" */ },\n\t/*::[*/0x0263/*::]*/: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t/*::[*/0x0264/*::]*/: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t/*::[*/0x0265/*::]*/: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t/*::[*/0x0266/*::]*/: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t/*::[*/0x0267/*::]*/: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t/*::[*/0x0268/*::]*/: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t/*::[*/0x0269/*::]*/: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t/*::[*/0x026A/*::]*/: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t/*::[*/0x026B/*::]*/: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t/*::[*/0x026C/*::]*/: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t/*::[*/0x0271/*::]*/: { /* n:\"BrtBigName\" */ },\n\t/*::[*/0x0272/*::]*/: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t/*::[*/0x0273/*::]*/: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t/*::[*/0x0274/*::]*/: { /* n:\"BrtBeginComments\", */ T:1 },\n\t/*::[*/0x0275/*::]*/: { /* n:\"BrtEndComments\", */ T:-1 },\n\t/*::[*/0x0276/*::]*/: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t/*::[*/0x0277/*::]*/: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t/*::[*/0x0278/*::]*/: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t/*::[*/0x0279/*::]*/: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t/*::[*/0x027A/*::]*/: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t/*::[*/0x027B/*::]*/: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t/*::[*/0x027C/*::]*/: { /* n:\"BrtEndComment\", */ T:-1 },\n\t/*::[*/0x027D/*::]*/: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t/*::[*/0x027E/*::]*/: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t/*::[*/0x027F/*::]*/: { /* n:\"BrtOleObject\" */ },\n\t/*::[*/0x0280/*::]*/: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t/*::[*/0x0281/*::]*/: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t/*::[*/0x0282/*::]*/: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t/*::[*/0x0283/*::]*/: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t/*::[*/0x0284/*::]*/: { /* n:\"BrtActiveX\" */ },\n\t/*::[*/0x0285/*::]*/: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t/*::[*/0x0286/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t/*::[*/0x0288/*::]*/: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t/*::[*/0x0289/*::]*/: { /* n:\"BrtCellIgnoreEC\" */ },\n\t/*::[*/0x028A/*::]*/: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t/*::[*/0x028B/*::]*/: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t/*::[*/0x028C/*::]*/: { /* n:\"BrtCsPageSetup\" */ },\n\t/*::[*/0x028D/*::]*/: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t/*::[*/0x028E/*::]*/: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t/*::[*/0x028F/*::]*/: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t/*::[*/0x0290/*::]*/: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t/*::[*/0x0291/*::]*/: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t/*::[*/0x0292/*::]*/: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t/*::[*/0x0293/*::]*/: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t/*::[*/0x0294/*::]*/: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t/*::[*/0x0295/*::]*/: { /* n:\"BrtListPart\" */ },\n\t/*::[*/0x0296/*::]*/: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t/*::[*/0x0297/*::]*/: { /* n:\"BrtSheetCalcProp\" */ },\n\t/*::[*/0x0298/*::]*/: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t/*::[*/0x0299/*::]*/: { /* n:\"BrtFnGroup\" */ },\n\t/*::[*/0x029A/*::]*/: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t/*::[*/0x029B/*::]*/: { /* n:\"BrtSupAddin\" */ },\n\t/*::[*/0x029C/*::]*/: { /* n:\"BrtSXTDMPOrder\" */ },\n\t/*::[*/0x029D/*::]*/: { /* n:\"BrtCsProtection\" */ },\n\t/*::[*/0x029F/*::]*/: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t/*::[*/0x02A0/*::]*/: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t/*::[*/0x02A1/*::]*/: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t/*::[*/0x02A2/*::]*/: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t/*::[*/0x02A3/*::]*/: { /* n:\"BrtRRSortItem\" */ },\n\t/*::[*/0x02A4/*::]*/: { /* n:\"BrtFileSharingIso\" */ },\n\t/*::[*/0x02A5/*::]*/: { /* n:\"BrtBookProtectionIso\" */ },\n\t/*::[*/0x02A6/*::]*/: { /* n:\"BrtSheetProtectionIso\" */ },\n\t/*::[*/0x02A7/*::]*/: { /* n:\"BrtCsProtectionIso\" */ },\n\t/*::[*/0x02A8/*::]*/: { /* n:\"BrtRangeProtectionIso\" */ },\n\t/*::[*/0x02A9/*::]*/: { /* n:\"BrtDValList\" */ },\n\t/*::[*/0x0400/*::]*/: { /* n:\"BrtRwDescent\" */ },\n\t/*::[*/0x0401/*::]*/: { /* n:\"BrtKnownFonts\" */ },\n\t/*::[*/0x0402/*::]*/: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t/*::[*/0x0403/*::]*/: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t/*::[*/0x0404/*::]*/: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t/*::[*/0x0405/*::]*/: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t/*::[*/0x0406/*::]*/: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t/*::[*/0x0407/*::]*/: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t/*::[*/0x0408/*::]*/: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t/*::[*/0x040A/*::]*/: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t/*::[*/0x040B/*::]*/: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t/*::[*/0x040C/*::]*/: { /* n:\"BrtNameExt\" */ },\n\t/*::[*/0x040D/*::]*/: { /* n:\"BrtPCDH14\" */ },\n\t/*::[*/0x040E/*::]*/: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t/*::[*/0x040F/*::]*/: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t/*::[*/0x0410/*::]*/: { /* n:\"BrtSXTH14\" */ },\n\t/*::[*/0x0411/*::]*/: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t/*::[*/0x0412/*::]*/: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t/*::[*/0x0413/*::]*/: { /* n:\"BrtSparkline\" */ },\n\t/*::[*/0x0414/*::]*/: { /* n:\"BrtSXDI14\" */ },\n\t/*::[*/0x0415/*::]*/: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t/*::[*/0x0416/*::]*/: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t/*::[*/0x0417/*::]*/: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t/*::[*/0x0419/*::]*/: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t/*::[*/0x041A/*::]*/: { /* n:\"BrtCFVO14\" */ },\n\t/*::[*/0x041B/*::]*/: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t/*::[*/0x041C/*::]*/: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t/*::[*/0x041D/*::]*/: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t/*::[*/0x041E/*::]*/: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t/*::[*/0x041F/*::]*/: { /* n:\"BrtColor14\" */ },\n\t/*::[*/0x0420/*::]*/: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t/*::[*/0x0421/*::]*/: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t/*::[*/0x0422/*::]*/: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t/*::[*/0x0423/*::]*/: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t/*::[*/0x0425/*::]*/: { /* n:\"BrtSXVD14\" */ },\n\t/*::[*/0x0426/*::]*/: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t/*::[*/0x0427/*::]*/: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t/*::[*/0x0428/*::]*/: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t/*::[*/0x0429/*::]*/: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t/*::[*/0x042A/*::]*/: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t/*::[*/0x042B/*::]*/: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t/*::[*/0x042C/*::]*/: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t/*::[*/0x042D/*::]*/: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t/*::[*/0x042E/*::]*/: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t/*::[*/0x042F/*::]*/: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t/*::[*/0x0430/*::]*/: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t/*::[*/0x0431/*::]*/: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t/*::[*/0x0433/*::]*/: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t/*::[*/0x0434/*::]*/: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t/*::[*/0x0435/*::]*/: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t/*::[*/0x0436/*::]*/: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t/*::[*/0x0437/*::]*/: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t/*::[*/0x0438/*::]*/: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t/*::[*/0x0439/*::]*/: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t/*::[*/0x043A/*::]*/: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t/*::[*/0x043B/*::]*/: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t/*::[*/0x043C/*::]*/: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t/*::[*/0x043D/*::]*/: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t/*::[*/0x043E/*::]*/: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t/*::[*/0x043F/*::]*/: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t/*::[*/0x0440/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t/*::[*/0x0441/*::]*/: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t/*::[*/0x0442/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t/*::[*/0x0444/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t/*::[*/0x0445/*::]*/: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t/*::[*/0x0446/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t/*::[*/0x0447/*::]*/: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t/*::[*/0x0448/*::]*/: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t/*::[*/0x0449/*::]*/: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t/*::[*/0x044A/*::]*/: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t/*::[*/0x044B/*::]*/: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t/*::[*/0x044C/*::]*/: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t/*::[*/0x044D/*::]*/: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t/*::[*/0x044E/*::]*/: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t/*::[*/0x044F/*::]*/: { /* n:\"BrtRangeProtection14\" */ },\n\t/*::[*/0x0450/*::]*/: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t/*::[*/0x0451/*::]*/: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t/*::[*/0x0457/*::]*/: { /* n:\"BrtList14\" */ },\n\t/*::[*/0x0458/*::]*/: { /* n:\"BrtCFIcon\" */ },\n\t/*::[*/0x0459/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x045A/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x045B/*::]*/: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t/*::[*/0x045C/*::]*/: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t/*::[*/0x045D/*::]*/: { /* n:\"BrtWbProp14\" */ },\n\t/*::[*/0x045E/*::]*/: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t/*::[*/0x045F/*::]*/: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t/*::[*/0x0460/*::]*/: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t/*::[*/0x0461/*::]*/: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t/*::[*/0x0462/*::]*/: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t/*::[*/0x0463/*::]*/: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t/*::[*/0x0464/*::]*/: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t/*::[*/0x0465/*::]*/: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t/*::[*/0x0466/*::]*/: { /* n:\"BrtSXTupleItems\" */ },\n\t/*::[*/0x0468/*::]*/: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t/*::[*/0x0469/*::]*/: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t/*::[*/0x046A/*::]*/: { /* n:\"BrtSlicerStyleElement\" */ },\n\t/*::[*/0x046B/*::]*/: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t/*::[*/0x046C/*::]*/: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t/*::[*/0x046D/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t/*::[*/0x046E/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t/*::[*/0x046F/*::]*/: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t/*::[*/0x0470/*::]*/: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t/*::[*/0x0471/*::]*/: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t/*::[*/0x0472/*::]*/: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t/*::[*/0x0473/*::]*/: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t/*::[*/0x0474/*::]*/: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t/*::[*/0x0475/*::]*/: { /* n:\"BrtPCDField14\" */ },\n\t/*::[*/0x0476/*::]*/: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t/*::[*/0x0477/*::]*/: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t/*::[*/0x0478/*::]*/: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t/*::[*/0x0479/*::]*/: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t/*::[*/0x047A/*::]*/: { /* n:\"BrtCFRuleExt\" */ },\n\t/*::[*/0x047B/*::]*/: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t/*::[*/0x047C/*::]*/: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t/*::[*/0x047D/*::]*/: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t/*::[*/0x047E/*::]*/: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t/*::[*/0x0480/*::]*/: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t/*::[*/0x0481/*::]*/: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t/*::[*/0x0482/*::]*/: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t/*::[*/0x0483/*::]*/: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t/*::[*/0x0484/*::]*/: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t/*::[*/0x0485/*::]*/: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t/*::[*/0x0486/*::]*/: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t/*::[*/0x0487/*::]*/: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t/*::[*/0x0488/*::]*/: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t/*::[*/0x0489/*::]*/: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t/*::[*/0x048A/*::]*/: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t/*::[*/0x048B/*::]*/: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t/*::[*/0x048C/*::]*/: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t/*::[*/0x048D/*::]*/: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t/*::[*/0x048E/*::]*/: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t/*::[*/0x048F/*::]*/: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t/*::[*/0x0490/*::]*/: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t/*::[*/0x0491/*::]*/: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t/*::[*/0x0492/*::]*/: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t/*::[*/0x0493/*::]*/: { /* n:\"BrtDxf14\" */ },\n\t/*::[*/0x0494/*::]*/: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t/*::[*/0x0495/*::]*/: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t/*::[*/0x0499/*::]*/: { /* n:\"BrtFilter14\" */ },\n\t/*::[*/0x049A/*::]*/: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t/*::[*/0x049C/*::]*/: { /* n:\"BrtCustomFilter14\" */ },\n\t/*::[*/0x049D/*::]*/: { /* n:\"BrtIconFilter14\" */ },\n\t/*::[*/0x049E/*::]*/: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t/*::[*/0x0800/*::]*/: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0801/*::]*/: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0802/*::]*/: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t/*::[*/0x0804/*::]*/: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t/*::[*/0x0805/*::]*/: { /* n:\"BrtPivotTableRef\" */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t/*::[*/0x0808/*::]*/: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t/*::[*/0x080A/*::]*/: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t/*::[*/0x080C/*::]*/: { /* n:\"BrtPcdCalcMem15\" */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"BrtQsi15\" */ },\n\t/*::[*/0x0814/*::]*/: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t/*::[*/0x0815/*::]*/: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t/*::[*/0x0816/*::]*/: { /* n:\"BrtWebExtension\" */ },\n\t/*::[*/0x0817/*::]*/: { /* n:\"BrtAbsPath15\" */ },\n\t/*::[*/0x0818/*::]*/: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t/*::[*/0x0819/*::]*/: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t/*::[*/0x081B/*::]*/: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t/*::[*/0x081C/*::]*/: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t/*::[*/0x081D/*::]*/: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t/*::[*/0x081E/*::]*/: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t/*::[*/0x081F/*::]*/: { /* n:\"BrtSxFilter15\" */ },\n\t/*::[*/0x0820/*::]*/: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0821/*::]*/: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0822/*::]*/: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t/*::[*/0x0823/*::]*/: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t/*::[*/0x0824/*::]*/: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t/*::[*/0x0825/*::]*/: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t/*::[*/0x0826/*::]*/: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t/*::[*/0x0827/*::]*/: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t/*::[*/0x0828/*::]*/: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t/*::[*/0x0829/*::]*/: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t/*::[*/0x082A/*::]*/: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t/*::[*/0x082B/*::]*/: { /* n:\"BrtWorkBookPr15\" */ },\n\t/*::[*/0x082C/*::]*/: { /* n:\"BrtPCDH15\" */ },\n\t/*::[*/0x082D/*::]*/: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t/*::[*/0x082E/*::]*/: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t/*::[*/0x082F/*::]*/: { /* n:\"BrtTimelineStyleElement\" */ },\n\t/*::[*/0x0830/*::]*/: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t/*::[*/0x0831/*::]*/: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t/*::[*/0x0832/*::]*/: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t/*::[*/0x0833/*::]*/: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t/*::[*/0x0834/*::]*/: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t/*::[*/0x0835/*::]*/: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t/*::[*/0x0836/*::]*/: { /* n:\"BrtDxf15\" */ },\n\t/*::[*/0x0837/*::]*/: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t/*::[*/0x0838/*::]*/: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t/*::[*/0x0839/*::]*/: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t/*::[*/0x083A/*::]*/: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t/*::[*/0x083B/*::]*/: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t/*::[*/0x083C/*::]*/: { /* n:\"BrtItemUniqueName\" */ },\n\t/*::[*/0x083D/*::]*/: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t/*::[*/0x083E/*::]*/: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t/*::[*/0x083F/*::]*/: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t/*::[*/0x0840/*::]*/: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t/*::[*/0x0841/*::]*/: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t/*::[*/0x0842/*::]*/: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t/*::[*/0x0843/*::]*/: { /* n:\"BrtTextPr15\" */ },\n\t/*::[*/0x0844/*::]*/: { /* n:\"BrtRangePr15\" */ },\n\t/*::[*/0x0845/*::]*/: { /* n:\"BrtDbCommand15\" */ },\n\t/*::[*/0x0846/*::]*/: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t/*::[*/0x0847/*::]*/: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t/*::[*/0x0848/*::]*/: { /* n:\"BrtDbTable15\" */ },\n\t/*::[*/0x0849/*::]*/: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t/*::[*/0x084A/*::]*/: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t/*::[*/0x084B/*::]*/: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t/*::[*/0x084C/*::]*/: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t/*::[*/0x084D/*::]*/: { /* n:\"BrtModelTable\" */ },\n\t/*::[*/0x084E/*::]*/: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t/*::[*/0x084F/*::]*/: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t/*::[*/0x0850/*::]*/: { /* n:\"BrtModelRelationship\" */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t/*::[*/0x0852/*::]*/: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t/*::[*/0x0853/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t/*::[*/0x0854/*::]*/: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t/*::[*/0x0855/*::]*/: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t/*::[*/0x0856/*::]*/: { /* n:\"BrtFieldListActiveItem\" */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"BrtSXDI15\" */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t/*::[*/0x085A/*::]*/: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t/*::[*/0x085B/*::]*/: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t/*::[*/0x085C/*::]*/: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t/*::[*/0x085D/*::]*/: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t/*::[*/0x0C00/*::]*/: { /* n:\"BrtUid\" */ },\n\t/*::[*/0x0C01/*::]*/: { /* n:\"BrtRevisionPtr\" */ },\n\t/*::[*/0x1000/*::]*/: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t/*::[*/0x1001/*::]*/: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t/*::[*/0x138A/*::]*/: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t/*::[*/0x138B/*::]*/: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t/*::[*/0x13D9/*::]*/: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t/*::[*/0x13DA/*::]*/: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t/*::[*/0x13DB/*::]*/: { /* n:\"BrtRichFilter\" */ },\n\t/*::[*/0x13DC/*::]*/: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t/*::[*/0x13DD/*::]*/: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t/*::[*/0x13DE/*::]*/: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t/*::[*/0x13DF/*::]*/: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t/*::[*/0x13E0/*::]*/: { /* n:\"BrtCustomRichFilter\" */ },\n\t/*::[*/0x13E1/*::]*/: { /* n:\"BrtTop10RichFilter\" */ },\n\t/*::[*/0x13E2/*::]*/: { /* n:\"BrtDynamicRichFilter\" */ },\n\t/*::[*/0x13E4/*::]*/: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t/*::[*/0x13E5/*::]*/: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t/*::[*/0x13E6/*::]*/: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t/*::[*/0x13E7/*::]*/: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t/*::[*/0x13E8/*::]*/: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t/*::[*/0x13E9/*::]*/: { /* n:\"BrtCalcFeature\" */ },\n\t/*::[*/0x13EB/*::]*/: { /* n:\"BrtExternalLinksPr\" */ },\n\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t/*::[*/0x0006/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x000a/*::]*/: { /* n:\"EOF\", */ f:parsenoop2 },\n\t/*::[*/0x000c/*::]*/: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t/*::[*/0x000d/*::]*/: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t/*::[*/0x000e/*::]*/: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t/*::[*/0x000f/*::]*/: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t/*::[*/0x0010/*::]*/: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t/*::[*/0x0011/*::]*/: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t/*::[*/0x0012/*::]*/: { /* n:\"Protect\", */ f:parsebool },\n\t/*::[*/0x0013/*::]*/: { /* n:\"Password\", */ f:parseuint16 },\n\t/*::[*/0x0014/*::]*/: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0015/*::]*/: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0017/*::]*/: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x0018/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0019/*::]*/: { /* n:\"WinProtect\", */ f:parsebool },\n\t/*::[*/0x001a/*::]*/: { /* n:\"VerticalPageBreaks\", */ },\n\t/*::[*/0x001b/*::]*/: { /* n:\"HorizontalPageBreaks\", */ },\n\t/*::[*/0x001c/*::]*/: { /* n:\"Note\", */ f:parse_Note },\n\t/*::[*/0x001d/*::]*/: { /* n:\"Selection\", */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"Date1904\", */ f:parsebool },\n\t/*::[*/0x0023/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0026/*::]*/: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0027/*::]*/: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0028/*::]*/: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0029/*::]*/: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x002a/*::]*/: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t/*::[*/0x002b/*::]*/: { /* n:\"PrintGrid\", */ f:parsebool },\n\t/*::[*/0x002f/*::]*/: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t/*::[*/0x0031/*::]*/: { /* n:\"Font\", */ f:parse_Font },\n\t/*::[*/0x0033/*::]*/: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t/*::[*/0x003c/*::]*/: { /* n:\"Continue\", */ },\n\t/*::[*/0x003d/*::]*/: { /* n:\"Window1\", */ f:parse_Window1 },\n\t/*::[*/0x0040/*::]*/: { /* n:\"Backup\", */ f:parsebool },\n\t/*::[*/0x0041/*::]*/: { /* n:\"Pane\", */ f:parse_Pane },\n\t/*::[*/0x0042/*::]*/: { /* n:\"CodePage\", */ f:parseuint16 },\n\t/*::[*/0x004d/*::]*/: { /* n:\"Pls\", */ },\n\t/*::[*/0x0050/*::]*/: { /* n:\"DCon\", */ },\n\t/*::[*/0x0051/*::]*/: { /* n:\"DConRef\", */ },\n\t/*::[*/0x0052/*::]*/: { /* n:\"DConName\", */ },\n\t/*::[*/0x0055/*::]*/: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t/*::[*/0x0059/*::]*/: { /* n:\"XCT\", */ },\n\t/*::[*/0x005a/*::]*/: { /* n:\"CRN\", */ },\n\t/*::[*/0x005b/*::]*/: { /* n:\"FileSharing\", */ },\n\t/*::[*/0x005c/*::]*/: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t/*::[*/0x005d/*::]*/: { /* n:\"Obj\", */ f:parse_Obj },\n\t/*::[*/0x005e/*::]*/: { /* n:\"Uncalced\", */ },\n\t/*::[*/0x005f/*::]*/: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t/*::[*/0x0060/*::]*/: { /* n:\"Template\", */ },\n\t/*::[*/0x0061/*::]*/: { /* n:\"Intl\", */ },\n\t/*::[*/0x0063/*::]*/: { /* n:\"ObjProtect\", */ f:parsebool },\n\t/*::[*/0x007d/*::]*/: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x0080/*::]*/: { /* n:\"Guts\", */ f:parse_Guts },\n\t/*::[*/0x0081/*::]*/: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t/*::[*/0x0082/*::]*/: { /* n:\"GridSet\", */ f:parseuint16 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"HCenter\", */ f:parsebool },\n\t/*::[*/0x0084/*::]*/: { /* n:\"VCenter\", */ f:parsebool },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"WriteProtect\", */ },\n\t/*::[*/0x008c/*::]*/: { /* n:\"Country\", */ f:parse_Country },\n\t/*::[*/0x008d/*::]*/: { /* n:\"HideObj\", */ f:parseuint16 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"Sort\", */ },\n\t/*::[*/0x0092/*::]*/: { /* n:\"Palette\", */ f:parse_Palette },\n\t/*::[*/0x0097/*::]*/: { /* n:\"Sync\", */ },\n\t/*::[*/0x0098/*::]*/: { /* n:\"LPr\", */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"DxGCol\", */ },\n\t/*::[*/0x009a/*::]*/: { /* n:\"FnGroupName\", */ },\n\t/*::[*/0x009b/*::]*/: { /* n:\"FilterMode\", */ },\n\t/*::[*/0x009c/*::]*/: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t/*::[*/0x009d/*::]*/: { /* n:\"AutoFilterInfo\", */ },\n\t/*::[*/0x009e/*::]*/: { /* n:\"AutoFilter\", */ },\n\t/*::[*/0x00a0/*::]*/: { /* n:\"Scl\", */ f:parse_Scl },\n\t/*::[*/0x00a1/*::]*/: { /* n:\"Setup\", */ f:parse_Setup },\n\t/*::[*/0x00ae/*::]*/: { /* n:\"ScenMan\", */ },\n\t/*::[*/0x00af/*::]*/: { /* n:\"SCENARIO\", */ },\n\t/*::[*/0x00b0/*::]*/: { /* n:\"SxView\", */ },\n\t/*::[*/0x00b1/*::]*/: { /* n:\"Sxvd\", */ },\n\t/*::[*/0x00b2/*::]*/: { /* n:\"SXVI\", */ },\n\t/*::[*/0x00b4/*::]*/: { /* n:\"SxIvd\", */ },\n\t/*::[*/0x00b5/*::]*/: { /* n:\"SXLI\", */ },\n\t/*::[*/0x00b6/*::]*/: { /* n:\"SXPI\", */ },\n\t/*::[*/0x00b8/*::]*/: { /* n:\"DocRoute\", */ },\n\t/*::[*/0x00b9/*::]*/: { /* n:\"RecipName\", */ },\n\t/*::[*/0x00bd/*::]*/: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t/*::[*/0x00be/*::]*/: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t/*::[*/0x00c1/*::]*/: { /* n:\"Mms\", */ f:parsenoop2 },\n\t/*::[*/0x00c5/*::]*/: { /* n:\"SXDI\", */ },\n\t/*::[*/0x00c6/*::]*/: { /* n:\"SXDB\", */ },\n\t/*::[*/0x00c7/*::]*/: { /* n:\"SXFDB\", */ },\n\t/*::[*/0x00c8/*::]*/: { /* n:\"SXDBB\", */ },\n\t/*::[*/0x00c9/*::]*/: { /* n:\"SXNum\", */ },\n\t/*::[*/0x00ca/*::]*/: { /* n:\"SxBool\", */ f:parsebool },\n\t/*::[*/0x00cb/*::]*/: { /* n:\"SxErr\", */ },\n\t/*::[*/0x00cc/*::]*/: { /* n:\"SXInt\", */ },\n\t/*::[*/0x00cd/*::]*/: { /* n:\"SXString\", */ },\n\t/*::[*/0x00ce/*::]*/: { /* n:\"SXDtr\", */ },\n\t/*::[*/0x00cf/*::]*/: { /* n:\"SxNil\", */ },\n\t/*::[*/0x00d0/*::]*/: { /* n:\"SXTbl\", */ },\n\t/*::[*/0x00d1/*::]*/: { /* n:\"SXTBRGIITM\", */ },\n\t/*::[*/0x00d2/*::]*/: { /* n:\"SxTbpg\", */ },\n\t/*::[*/0x00d3/*::]*/: { /* n:\"ObProj\", */ },\n\t/*::[*/0x00d5/*::]*/: { /* n:\"SXStreamID\", */ },\n\t/*::[*/0x00d7/*::]*/: { /* n:\"DBCell\", */ },\n\t/*::[*/0x00d8/*::]*/: { /* n:\"SXRng\", */ },\n\t/*::[*/0x00d9/*::]*/: { /* n:\"SxIsxoper\", */ },\n\t/*::[*/0x00da/*::]*/: { /* n:\"BookBool\", */ f:parseuint16 },\n\t/*::[*/0x00dc/*::]*/: { /* n:\"DbOrParamQry\", */ },\n\t/*::[*/0x00dd/*::]*/: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t/*::[*/0x00de/*::]*/: { /* n:\"OleObjectSize\", */ },\n\t/*::[*/0x00e0/*::]*/: { /* n:\"XF\", */ f:parse_XF },\n\t/*::[*/0x00e1/*::]*/: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t/*::[*/0x00e2/*::]*/: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t/*::[*/0x00e3/*::]*/: { /* n:\"SXVS\", */ },\n\t/*::[*/0x00e5/*::]*/: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t/*::[*/0x00e9/*::]*/: { /* n:\"BkHim\", */ },\n\t/*::[*/0x00eb/*::]*/: { /* n:\"MsoDrawingGroup\", */ },\n\t/*::[*/0x00ec/*::]*/: { /* n:\"MsoDrawing\", */ },\n\t/*::[*/0x00ed/*::]*/: { /* n:\"MsoDrawingSelection\", */ },\n\t/*::[*/0x00ef/*::]*/: { /* n:\"PhoneticInfo\", */ },\n\t/*::[*/0x00f0/*::]*/: { /* n:\"SxRule\", */ },\n\t/*::[*/0x00f1/*::]*/: { /* n:\"SXEx\", */ },\n\t/*::[*/0x00f2/*::]*/: { /* n:\"SxFilt\", */ },\n\t/*::[*/0x00f4/*::]*/: { /* n:\"SxDXF\", */ },\n\t/*::[*/0x00f5/*::]*/: { /* n:\"SxItm\", */ },\n\t/*::[*/0x00f6/*::]*/: { /* n:\"SxName\", */ },\n\t/*::[*/0x00f7/*::]*/: { /* n:\"SxSelect\", */ },\n\t/*::[*/0x00f8/*::]*/: { /* n:\"SXPair\", */ },\n\t/*::[*/0x00f9/*::]*/: { /* n:\"SxFmla\", */ },\n\t/*::[*/0x00fb/*::]*/: { /* n:\"SxFormat\", */ },\n\t/*::[*/0x00fc/*::]*/: { /* n:\"SST\", */ f:parse_SST },\n\t/*::[*/0x00fd/*::]*/: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t/*::[*/0x00ff/*::]*/: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t/*::[*/0x0100/*::]*/: { /* n:\"SXVDEx\", */ },\n\t/*::[*/0x0103/*::]*/: { /* n:\"SXFormula\", */ },\n\t/*::[*/0x0122/*::]*/: { /* n:\"SXDBEx\", */ },\n\t/*::[*/0x0137/*::]*/: { /* n:\"RRDInsDel\", */ },\n\t/*::[*/0x0138/*::]*/: { /* n:\"RRDHead\", */ },\n\t/*::[*/0x013b/*::]*/: { /* n:\"RRDChgCell\", */ },\n\t/*::[*/0x013d/*::]*/: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t/*::[*/0x013e/*::]*/: { /* n:\"RRDRenSheet\", */ },\n\t/*::[*/0x013f/*::]*/: { /* n:\"RRSort\", */ },\n\t/*::[*/0x0140/*::]*/: { /* n:\"RRDMove\", */ },\n\t/*::[*/0x014a/*::]*/: { /* n:\"RRFormat\", */ },\n\t/*::[*/0x014b/*::]*/: { /* n:\"RRAutoFmt\", */ },\n\t/*::[*/0x014d/*::]*/: { /* n:\"RRInsertSh\", */ },\n\t/*::[*/0x014e/*::]*/: { /* n:\"RRDMoveBegin\", */ },\n\t/*::[*/0x014f/*::]*/: { /* n:\"RRDMoveEnd\", */ },\n\t/*::[*/0x0150/*::]*/: { /* n:\"RRDInsDelBegin\", */ },\n\t/*::[*/0x0151/*::]*/: { /* n:\"RRDInsDelEnd\", */ },\n\t/*::[*/0x0152/*::]*/: { /* n:\"RRDConflict\", */ },\n\t/*::[*/0x0153/*::]*/: { /* n:\"RRDDefName\", */ },\n\t/*::[*/0x0154/*::]*/: { /* n:\"RRDRstEtxp\", */ },\n\t/*::[*/0x015f/*::]*/: { /* n:\"LRng\", */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"UsesELFs\", */ f:parsebool },\n\t/*::[*/0x0161/*::]*/: { /* n:\"DSF\", */ f:parsenoop2 },\n\t/*::[*/0x0191/*::]*/: { /* n:\"CUsr\", */ },\n\t/*::[*/0x0192/*::]*/: { /* n:\"CbUsr\", */ },\n\t/*::[*/0x0193/*::]*/: { /* n:\"UsrInfo\", */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"UsrExcl\", */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"FileLock\", */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"RRDInfo\", */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BCUsrs\", */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"UsrChk\", */ },\n\t/*::[*/0x01a9/*::]*/: { /* n:\"UserBView\", */ },\n\t/*::[*/0x01aa/*::]*/: { /* n:\"UserSViewBegin\", */ },\n\t/*::[*/0x01ab/*::]*/: { /* n:\"UserSViewEnd\", */ },\n\t/*::[*/0x01ac/*::]*/: { /* n:\"RRDUserView\", */ },\n\t/*::[*/0x01ad/*::]*/: { /* n:\"Qsi\", */ },\n\t/*::[*/0x01ae/*::]*/: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t/*::[*/0x01af/*::]*/: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t/*::[*/0x01b0/*::]*/: { /* n:\"CondFmt\", */ },\n\t/*::[*/0x01b1/*::]*/: { /* n:\"CF\", */ },\n\t/*::[*/0x01b2/*::]*/: { /* n:\"DVal\", */ },\n\t/*::[*/0x01b5/*::]*/: { /* n:\"DConBin\", */ },\n\t/*::[*/0x01b6/*::]*/: { /* n:\"TxO\", */ f:parse_TxO },\n\t/*::[*/0x01b7/*::]*/: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t/*::[*/0x01b8/*::]*/: { /* n:\"HLink\", */ f:parse_HLink },\n\t/*::[*/0x01b9/*::]*/: { /* n:\"Lel\", */ },\n\t/*::[*/0x01ba/*::]*/: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t/*::[*/0x01bb/*::]*/: { /* n:\"SXFDBType\", */ },\n\t/*::[*/0x01bc/*::]*/: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t/*::[*/0x01bd/*::]*/: { /* n:\"ObNoMacros\", */ },\n\t/*::[*/0x01be/*::]*/: { /* n:\"Dv\", */ },\n\t/*::[*/0x01c0/*::]*/: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t/*::[*/0x01c1/*::]*/: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t/*::[*/0x01c2/*::]*/: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0201/*::]*/: { /* n:\"Blank\", */ f:parse_Blank },\n\t/*::[*/0x0203/*::]*/: { /* n:\"Number\", */ f:parse_Number },\n\t/*::[*/0x0204/*::]*/: { /* n:\"Label\", */ f:parse_Label },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0207/*::]*/: { /* n:\"String\", */ f:parse_String },\n\t/*::[*/0x0208/*::]*/: { /* n:\"Row\", */ f:parse_Row },\n\t/*::[*/0x020b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0221/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0225/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t/*::[*/0x0236/*::]*/: { /* n:\"Table\", */ },\n\t/*::[*/0x023e/*::]*/: { /* n:\"Window2\", */ f:parse_Window2 },\n\t/*::[*/0x027e/*::]*/: { /* n:\"RK\", */ f:parse_RK },\n\t/*::[*/0x0293/*::]*/: { /* n:\"Style\", */ },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BigName\", */ },\n\t/*::[*/0x041e/*::]*/: { /* n:\"Format\", */ f:parse_Format },\n\t/*::[*/0x043c/*::]*/: { /* n:\"ContinueBigName\", */ },\n\t/*::[*/0x04bc/*::]*/: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t/*::[*/0x0800/*::]*/: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t/*::[*/0x0801/*::]*/: { /* n:\"WebPub\", */ },\n\t/*::[*/0x0802/*::]*/: { /* n:\"QsiSXTag\", */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"DBQueryExt\", */ },\n\t/*::[*/0x0804/*::]*/: { /* n:\"ExtString\", */ },\n\t/*::[*/0x0805/*::]*/: { /* n:\"TxtQry\", */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"Qsir\", */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"Qsif\", */ },\n\t/*::[*/0x0808/*::]*/: { /* n:\"RRDTQSIF\", */ },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x080a/*::]*/: { /* n:\"OleDbConn\", */ },\n\t/*::[*/0x080b/*::]*/: { /* n:\"WOpt\", */ },\n\t/*::[*/0x080c/*::]*/: { /* n:\"SXViewEx\", */ },\n\t/*::[*/0x080d/*::]*/: { /* n:\"SXTH\", */ },\n\t/*::[*/0x080e/*::]*/: { /* n:\"SXPIEx\", */ },\n\t/*::[*/0x080f/*::]*/: { /* n:\"SXVDTEx\", */ },\n\t/*::[*/0x0810/*::]*/: { /* n:\"SXViewEx9\", */ },\n\t/*::[*/0x0812/*::]*/: { /* n:\"ContinueFrt\", */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"RealTimeData\", */ },\n\t/*::[*/0x0850/*::]*/: { /* n:\"ChartFrtInfo\", */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"FrtWrapper\", */ },\n\t/*::[*/0x0852/*::]*/: { /* n:\"StartBlock\", */ },\n\t/*::[*/0x0853/*::]*/: { /* n:\"EndBlock\", */ },\n\t/*::[*/0x0854/*::]*/: { /* n:\"StartObject\", */ },\n\t/*::[*/0x0855/*::]*/: { /* n:\"EndObject\", */ },\n\t/*::[*/0x0856/*::]*/: { /* n:\"CatLab\", */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"YMult\", */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"SXViewLink\", */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"PivotChartBits\", */ },\n\t/*::[*/0x085a/*::]*/: { /* n:\"FrtFontList\", */ },\n\t/*::[*/0x0862/*::]*/: { /* n:\"SheetExt\", */ },\n\t/*::[*/0x0863/*::]*/: { /* n:\"BookExt\", */ r:12},\n\t/*::[*/0x0864/*::]*/: { /* n:\"SXAddl\", */ },\n\t/*::[*/0x0865/*::]*/: { /* n:\"CrErr\", */ },\n\t/*::[*/0x0866/*::]*/: { /* n:\"HFPicture\", */ },\n\t/*::[*/0x0867/*::]*/: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t/*::[*/0x0868/*::]*/: { /* n:\"Feat\", */ },\n\t/*::[*/0x086a/*::]*/: { /* n:\"DataLabExt\", */ },\n\t/*::[*/0x086b/*::]*/: { /* n:\"DataLabExtContents\", */ },\n\t/*::[*/0x086c/*::]*/: { /* n:\"CellWatch\", */ },\n\t/*::[*/0x0871/*::]*/: { /* n:\"FeatHdr11\", */ },\n\t/*::[*/0x0872/*::]*/: { /* n:\"Feature11\", */ },\n\t/*::[*/0x0874/*::]*/: { /* n:\"DropDownObjIds\", */ },\n\t/*::[*/0x0875/*::]*/: { /* n:\"ContinueFrt11\", */ },\n\t/*::[*/0x0876/*::]*/: { /* n:\"DConn\", */ },\n\t/*::[*/0x0877/*::]*/: { /* n:\"List12\", */ },\n\t/*::[*/0x0878/*::]*/: { /* n:\"Feature12\", */ },\n\t/*::[*/0x0879/*::]*/: { /* n:\"CondFmt12\", */ },\n\t/*::[*/0x087a/*::]*/: { /* n:\"CF12\", */ },\n\t/*::[*/0x087b/*::]*/: { /* n:\"CFEx\", */ },\n\t/*::[*/0x087c/*::]*/: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t/*::[*/0x087d/*::]*/: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t/*::[*/0x087e/*::]*/: { /* n:\"AutoFilter12\", */ },\n\t/*::[*/0x087f/*::]*/: { /* n:\"ContinueFrt12\", */ },\n\t/*::[*/0x0884/*::]*/: { /* n:\"MDTInfo\", */ },\n\t/*::[*/0x0885/*::]*/: { /* n:\"MDXStr\", */ },\n\t/*::[*/0x0886/*::]*/: { /* n:\"MDXTuple\", */ },\n\t/*::[*/0x0887/*::]*/: { /* n:\"MDXSet\", */ },\n\t/*::[*/0x0888/*::]*/: { /* n:\"MDXProp\", */ },\n\t/*::[*/0x0889/*::]*/: { /* n:\"MDXKPI\", */ },\n\t/*::[*/0x088a/*::]*/: { /* n:\"MDB\", */ },\n\t/*::[*/0x088b/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x088c/*::]*/: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t/*::[*/0x088d/*::]*/: { /* n:\"DXF\", */ },\n\t/*::[*/0x088e/*::]*/: { /* n:\"TableStyles\", */ r:12 },\n\t/*::[*/0x088f/*::]*/: { /* n:\"TableStyle\", */ },\n\t/*::[*/0x0890/*::]*/: { /* n:\"TableStyleElement\", */ },\n\t/*::[*/0x0892/*::]*/: { /* n:\"StyleExt\", */ },\n\t/*::[*/0x0893/*::]*/: { /* n:\"NamePublish\", */ },\n\t/*::[*/0x0894/*::]*/: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t/*::[*/0x0895/*::]*/: { /* n:\"SortData\", */ },\n\t/*::[*/0x0896/*::]*/: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t/*::[*/0x0897/*::]*/: { /* n:\"GUIDTypeLib\", */ },\n\t/*::[*/0x0898/*::]*/: { /* n:\"FnGrp12\", */ },\n\t/*::[*/0x0899/*::]*/: { /* n:\"NameFnGrp12\", */ },\n\t/*::[*/0x089a/*::]*/: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t/*::[*/0x089b/*::]*/: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t/*::[*/0x089c/*::]*/: { /* n:\"HeaderFooter\", */ },\n\t/*::[*/0x089d/*::]*/: { /* n:\"CrtLayout12\", */ },\n\t/*::[*/0x089e/*::]*/: { /* n:\"CrtMlFrt\", */ },\n\t/*::[*/0x089f/*::]*/: { /* n:\"CrtMlFrtContinue\", */ },\n\t/*::[*/0x08a3/*::]*/: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t/*::[*/0x08a4/*::]*/: { /* n:\"ShapePropsStream\", */ },\n\t/*::[*/0x08a5/*::]*/: { /* n:\"TextPropsStream\", */ },\n\t/*::[*/0x08a6/*::]*/: { /* n:\"RichTextStream\", */ },\n\t/*::[*/0x08a7/*::]*/: { /* n:\"CrtLayout12A\", */ },\n\t/*::[*/0x1001/*::]*/: { /* n:\"Units\", */ },\n\t/*::[*/0x1002/*::]*/: { /* n:\"Chart\", */ },\n\t/*::[*/0x1003/*::]*/: { /* n:\"Series\", */ },\n\t/*::[*/0x1006/*::]*/: { /* n:\"DataFormat\", */ },\n\t/*::[*/0x1007/*::]*/: { /* n:\"LineFormat\", */ },\n\t/*::[*/0x1009/*::]*/: { /* n:\"MarkerFormat\", */ },\n\t/*::[*/0x100a/*::]*/: { /* n:\"AreaFormat\", */ },\n\t/*::[*/0x100b/*::]*/: { /* n:\"PieFormat\", */ },\n\t/*::[*/0x100c/*::]*/: { /* n:\"AttachedLabel\", */ },\n\t/*::[*/0x100d/*::]*/: { /* n:\"SeriesText\", */ },\n\t/*::[*/0x1014/*::]*/: { /* n:\"ChartFormat\", */ },\n\t/*::[*/0x1015/*::]*/: { /* n:\"Legend\", */ },\n\t/*::[*/0x1016/*::]*/: { /* n:\"SeriesList\", */ },\n\t/*::[*/0x1017/*::]*/: { /* n:\"Bar\", */ },\n\t/*::[*/0x1018/*::]*/: { /* n:\"Line\", */ },\n\t/*::[*/0x1019/*::]*/: { /* n:\"Pie\", */ },\n\t/*::[*/0x101a/*::]*/: { /* n:\"Area\", */ },\n\t/*::[*/0x101b/*::]*/: { /* n:\"Scatter\", */ },\n\t/*::[*/0x101c/*::]*/: { /* n:\"CrtLine\", */ },\n\t/*::[*/0x101d/*::]*/: { /* n:\"Axis\", */ },\n\t/*::[*/0x101e/*::]*/: { /* n:\"Tick\", */ },\n\t/*::[*/0x101f/*::]*/: { /* n:\"ValueRange\", */ },\n\t/*::[*/0x1020/*::]*/: { /* n:\"CatSerRange\", */ },\n\t/*::[*/0x1021/*::]*/: { /* n:\"AxisLine\", */ },\n\t/*::[*/0x1022/*::]*/: { /* n:\"CrtLink\", */ },\n\t/*::[*/0x1024/*::]*/: { /* n:\"DefaultText\", */ },\n\t/*::[*/0x1025/*::]*/: { /* n:\"Text\", */ },\n\t/*::[*/0x1026/*::]*/: { /* n:\"FontX\", */ f:parseuint16 },\n\t/*::[*/0x1027/*::]*/: { /* n:\"ObjectLink\", */ },\n\t/*::[*/0x1032/*::]*/: { /* n:\"Frame\", */ },\n\t/*::[*/0x1033/*::]*/: { /* n:\"Begin\", */ },\n\t/*::[*/0x1034/*::]*/: { /* n:\"End\", */ },\n\t/*::[*/0x1035/*::]*/: { /* n:\"PlotArea\", */ },\n\t/*::[*/0x103a/*::]*/: { /* n:\"Chart3d\", */ },\n\t/*::[*/0x103c/*::]*/: { /* n:\"PicF\", */ },\n\t/*::[*/0x103d/*::]*/: { /* n:\"DropBar\", */ },\n\t/*::[*/0x103e/*::]*/: { /* n:\"Radar\", */ },\n\t/*::[*/0x103f/*::]*/: { /* n:\"Surf\", */ },\n\t/*::[*/0x1040/*::]*/: { /* n:\"RadarArea\", */ },\n\t/*::[*/0x1041/*::]*/: { /* n:\"AxisParent\", */ },\n\t/*::[*/0x1043/*::]*/: { /* n:\"LegendException\", */ },\n\t/*::[*/0x1044/*::]*/: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t/*::[*/0x1045/*::]*/: { /* n:\"SerToCrt\", */ },\n\t/*::[*/0x1046/*::]*/: { /* n:\"AxesUsed\", */ },\n\t/*::[*/0x1048/*::]*/: { /* n:\"SBaseRef\", */ },\n\t/*::[*/0x104a/*::]*/: { /* n:\"SerParent\", */ },\n\t/*::[*/0x104b/*::]*/: { /* n:\"SerAuxTrend\", */ },\n\t/*::[*/0x104e/*::]*/: { /* n:\"IFmtRecord\", */ },\n\t/*::[*/0x104f/*::]*/: { /* n:\"Pos\", */ },\n\t/*::[*/0x1050/*::]*/: { /* n:\"AlRuns\", */ },\n\t/*::[*/0x1051/*::]*/: { /* n:\"BRAI\", */ },\n\t/*::[*/0x105b/*::]*/: { /* n:\"SerAuxErrBar\", */ },\n\t/*::[*/0x105c/*::]*/: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t/*::[*/0x105d/*::]*/: { /* n:\"SerFmt\", */ },\n\t/*::[*/0x105f/*::]*/: { /* n:\"Chart3DBarShape\", */ },\n\t/*::[*/0x1060/*::]*/: { /* n:\"Fbi\", */ },\n\t/*::[*/0x1061/*::]*/: { /* n:\"BopPop\", */ },\n\t/*::[*/0x1062/*::]*/: { /* n:\"AxcExt\", */ },\n\t/*::[*/0x1063/*::]*/: { /* n:\"Dat\", */ },\n\t/*::[*/0x1064/*::]*/: { /* n:\"PlotGrowth\", */ },\n\t/*::[*/0x1065/*::]*/: { /* n:\"SIIndex\", */ },\n\t/*::[*/0x1066/*::]*/: { /* n:\"GelFrame\", */ },\n\t/*::[*/0x1067/*::]*/: { /* n:\"BopPopCustom\", */ },\n\t/*::[*/0x1068/*::]*/: { /* n:\"Fbi2\", */ },\n\n\t/*::[*/0x0000/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BIFF2BLANK\", */ },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0007/*::]*/: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BIFF2ROW\", */ },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x000b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t/*::[*/0x001e/*::]*/: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t/*::[*/0x001f/*::]*/: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t/*::[*/0x0020/*::]*/: { /* n:\"BIFF2COLINFO\", */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0024/*::]*/: { /* n:\"COLWIDTH\", */ },\n\t/*::[*/0x0025/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x2c ??\n\t// 0x2d ??\n\t// 0x2e ??\n\t// 0x30 FONTCOUNT: number of fonts\n\t/*::[*/0x0032/*::]*/: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x35: INFOOPTS\n\t// 0x36: TABLE (BIFF2 only)\n\t// 0x37: TABLE2 (BIFF2 only)\n\t// 0x38: WNDESK\n\t// 0x39 ??\n\t// 0x3a: BEGINPREF\n\t// 0x3b: ENDPREF\n\t/*::[*/0x003e/*::]*/: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x3f ??\n\t// 0x46: SHOWSCROLL\n\t// 0x47: SHOWFORMULA\n\t// 0x48: STATUSBAR\n\t// 0x49: SHORTMENUS\n\t// 0x4A:\n\t// 0x4B:\n\t// 0x4C:\n\t// 0x4E:\n\t// 0x4F:\n\t// 0x58: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t/*::[*/0x0034/*::]*/: { /* n:\"DDEObjName\", */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BIFF2XF\", */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BIFF2FONTCLR\", */ },\n\t/*::[*/0x0056/*::]*/: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t/*::[*/0x007e/*::]*/: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t/*::[*/0x007f/*::]*/: { /* n:\"ImData\", */ f:parse_ImData },\n\t/*::[*/0x0087/*::]*/: { /* n:\"Addin\", */ },\n\t/*::[*/0x0088/*::]*/: { /* n:\"Edg\", */ },\n\t/*::[*/0x0089/*::]*/: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t// 0x8F\n\t/*::[*/0x0091/*::]*/: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t/*::[*/0x0094/*::]*/: { /* n:\"LHRecord\", */ },\n\t/*::[*/0x0095/*::]*/: { /* n:\"LHNGraph\", */ },\n\t/*::[*/0x0096/*::]*/: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t/*::[*/0x00a9/*::]*/: { /* n:\"CoordList\", */ },\n\t/*::[*/0x00ab/*::]*/: { /* n:\"GCW\", */ },\n\t/*::[*/0x00bc/*::]*/: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t/*::[*/0x00bf/*::]*/: { /* n:\"ToolbarHdr\", */ },\n\t/*::[*/0x00c0/*::]*/: { /* n:\"ToolbarEnd\", */ },\n\t/*::[*/0x00c2/*::]*/: { /* n:\"AddMenu\", */ },\n\t/*::[*/0x00c3/*::]*/: { /* n:\"DelMenu\", */ },\n\t/*::[*/0x00d6/*::]*/: { /* n:\"RString\", */ f:parse_RString },\n\t/*::[*/0x00df/*::]*/: { /* n:\"UDDesc\", */ },\n\t/*::[*/0x00ea/*::]*/: { /* n:\"TabIdConf\", */ },\n\t/*::[*/0x0162/*::]*/: { /* n:\"XL5Modify\", */ },\n\t/*::[*/0x01a5/*::]*/: { /* n:\"FileSharing2\", */ },\n\t/*::[*/0x0206/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0218/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0223/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0231/*::]*/: { /* n:\"Font\", */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BIFF3XF\", */ },\n\t/*::[*/0x0406/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BIFF4XF\", */ },\n\t/*::[*/0x086d/*::]*/: { /* n:\"FeatInfo\", */ },\n\t/*::[*/0x0873/*::]*/: { /* n:\"FeatInfo11\", */ },\n\t/*::[*/0x0881/*::]*/: { /* n:\"SXAddl12\", */ },\n\t/*::[*/0x08c0/*::]*/: { /* n:\"AutoWebPub\", */ },\n\t/*::[*/0x08c1/*::]*/: { /* n:\"ListObj\", */ },\n\t/*::[*/0x08c2/*::]*/: { /* n:\"ListField\", */ },\n\t/*::[*/0x08c3/*::]*/: { /* n:\"ListDV\", */ },\n\t/*::[*/0x08c4/*::]*/: { /* n:\"ListCondFmt\", */ },\n\t/*::[*/0x08c5/*::]*/: { /* n:\"ListCF\", */ },\n\t/*::[*/0x08c6/*::]*/: { /* n:\"FMQry\", */ },\n\t/*::[*/0x08c7/*::]*/: { /* n:\"FMSQry\", */ },\n\t/*::[*/0x08c8/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x08c9/*::]*/: { /* n:\"LnExt\", */ },\n\t/*::[*/0x08ca/*::]*/: { /* n:\"MkrExt\", */ },\n\t/*::[*/0x08cb/*::]*/: { /* n:\"CrtCoopt\", */ },\n\t/*::[*/0x08d6/*::]*/: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/*::[*/0x7262/*::]*/: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = type;\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(/*:: len != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:?string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*//*::, opts*/) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, (cell.v||\"\").slice(0,255)));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref/*:string*/, rr = \"\", cols/*:Array*/ = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* BookBool */, writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* EOF */);\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* BoundSheet8 */, write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tstr = str.replace(//g, \"\");\n\tvar mtch/*:any*/ = str.match(/\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t}\n\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array*/ = [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_cell({r:R,c:C});\n\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tvar sp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '' + w + '';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v;\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '' + w + '';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"\";\n\treturn preamble + oo.join(\"\") + \"\";\n}\n\nvar HTML_BEGIN = 'SheetJS Table Export';\nvar HTML_END = '';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str.match(/[\\s\\S]*?<\\/table>/gi);\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find
    \");\n\tif(mtch.length == 1) return sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\treturn out.join(\"\") + '';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array*/ = [header];\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tout.push(make_html_preamble(ws, r, o));\n\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"
    \" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar rows/*:HTMLCollection*/ = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array*/ = [], midx = 0;\n\tvar rowinfo/*:Array*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts/*:HTMLCollection*/ = (row.children/*:any*/);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)}/*:any*/);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\") o.l = ({ Target: l });\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(//g,\" \")\n\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t.replace(//g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\treturn [v];\n}\n\nvar number_formats_ods = {\n\t/* ods name: [short ssf fmt, long ssf fmt] */\n\tday: [\"d\", \"dd\"],\n\tmonth: [\"m\", \"mm\"],\n\tyear: [\"y\", \"yy\"],\n\thours: [\"h\", \"hh\"],\n\tminutes: [\"m\", \"mm\"],\n\tseconds: [\"s\", \"ss\"],\n\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\tera: [\"e\", \"ee\"],\n\t/* there is no native representation of LO \"Q\" format */\n\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n};\n\n\nfunction parse_content_xml(d/*:string*/, _opts)/*:Workbook*/ {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state/*:Array*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", '名称':\"\"}*/;\n\t\tvar rowtag/*:: = {'行号':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array*/ = [];\n\t\tvar ws = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\n\t\tvar textp = \"\", textpidx = 0, textptag/*:: = {}*/;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges/*:Array*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]/*:any*/) : ({}/*:any*/); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.t = 'd'; q.v = numdate(q.v); }\n\t\t\t\t\t\t\tq.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': // 3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) /*::(*/comment/*:: :any)*/.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]}/*:any*/);\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ',\n\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t'',\n\t\t''\n\t].join(\"\");\n\n\tvar payload = '' + master_styles + '';\n\n\treturn function wso(/*::wb, opts*/) {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text/*:string*/)/*:string*/ {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb/*:Workbook*/, i/*:number*//*::, opts*/)/*:string*/ {\n\t\t/* Section 9 Tables */\n\t\tvar o/*:Array*/ = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' \\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o/*:Array*/, wb) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") {\n\t\t\to.push('\\n');\n\t\t\to.push(write_meta_ods().replace(/office:document-meta/g, \"office:meta\"));\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('\\n');\n\t\t// o.push(' \\n');\n\t\twrite_automatic_styles_ods(o, wb);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb/*:any*/, opts/*:any*/) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest/*:Array >*/ = [];\n\tvar rdf/*:Array<[string, string]>*/ = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods(/*::wb, opts*/));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nfunction u8_to_dataview(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\nfunction u8str(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n}\nfunction stru8(str) {\n return typeof TextEncoder != \"undefined\" ? new TextEncoder().encode(str) : s2a(utf8write(str));\n}\nfunction u8contains(body, search) {\n outer:\n for (var L = 0; L <= body.length - search.length; ++L) {\n for (var j = 0; j < search.length; ++j)\n if (body[L + j] != search[j])\n continue outer;\n return true;\n }\n return false;\n}\nfunction u8concat(u8a) {\n var len = u8a.reduce(function(acc, x) {\n return acc + x.length;\n }, 0);\n var out = new Uint8Array(len);\n var off = 0;\n u8a.forEach(function(u8) {\n out.set(u8, off);\n off += u8.length;\n });\n return out;\n}\nfunction popcnt(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n}\nfunction readDecimal128LE(buf, offset) {\n var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;\n var mantissa = buf[offset + 14] & 1;\n for (var j = offset + 13; j >= offset; --j)\n mantissa = mantissa * 256 + buf[j];\n return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);\n}\nfunction writeDecimal128LE(buf, offset, value) {\n var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 20;\n var mantissa = value / Math.pow(10, exp - 6176);\n buf[offset + 15] |= exp >> 7;\n buf[offset + 14] |= (exp & 127) << 1;\n for (var i = 0; mantissa >= 1; ++i, mantissa /= 256)\n buf[offset + i] = mantissa & 255;\n buf[offset + 15] |= value >= 0 ? 0 : 128;\n}\nfunction parse_varint49(buf, ptr) {\n var l = ptr ? ptr[0] : 0;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n if (ptr)\n ptr[0] = l;\n return usz;\n}\nfunction write_varint49(v) {\n var usz = new Uint8Array(7);\n usz[0] = v & 127;\n var L = 1;\n sz:\n if (v > 127) {\n usz[L - 1] |= 128;\n usz[L] = v >> 7 & 127;\n ++L;\n if (v <= 16383)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 14 & 127;\n ++L;\n if (v <= 2097151)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 21 & 127;\n ++L;\n if (v <= 268435455)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 256 >>> 21 & 127;\n ++L;\n if (v <= 34359738367)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 65536 >>> 21 & 127;\n ++L;\n if (v <= 4398046511103)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 16777216 >>> 21 & 127;\n ++L;\n }\n return usz.slice(0, L);\n}\nfunction varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 28;\n }\n return i32;\n}\nfunction parse_shallow(buf) {\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var off = ptr[0];\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = Math.floor(num / 8);\n var len = 0;\n var res;\n if (num == 0)\n break;\n switch (type) {\n case 0:\n {\n var l = ptr[0];\n while (buf[ptr[0]++] >= 128)\n ;\n res = buf.slice(l, ptr[0]);\n }\n break;\n case 5:\n len = 4;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 1:\n len = 8;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 2:\n len = parse_varint49(buf, ptr);\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 3:\n case 4:\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { data: res, type: type };\n if (out[num] == null)\n out[num] = [v];\n else\n out[num].push(v);\n }\n return out;\n}\nfunction write_shallow(proto) {\n var out = [];\n proto.forEach(function(field, idx) {\n field.forEach(function(item) {\n if (!item.data)\n return;\n out.push(write_varint49(idx * 8 + item.type));\n if (item.type == 2)\n out.push(write_varint49(item.data.length));\n out.push(item.data);\n });\n });\n return u8concat(out);\n}\nfunction mappa(data, cb) {\n return (data == null ? void 0 : data.map(function(d) {\n return cb(d.data);\n })) || [];\n}\nfunction parse_iwa_file(buf) {\n var _a;\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf.slice(ptr[0], ptr[0] + fl)\n });\n ptr[0] += fl;\n });\n if ((_a = ai[3]) == null ? void 0 : _a[0])\n res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;\n out.push(res);\n }\n return out;\n}\nfunction write_iwa_file(ias) {\n var bufs = [];\n ias.forEach(function(ia) {\n var ai = [];\n ai[1] = [{ data: write_varint49(ia.id), type: 0 }];\n ai[2] = [];\n if (ia.merge != null)\n ai[3] = [{ data: write_varint49(+!!ia.merge), type: 0 }];\n var midata = [];\n ia.messages.forEach(function(mi) {\n midata.push(mi.data);\n mi.meta[3] = [{ type: 0, data: write_varint49(mi.data.length) }];\n ai[2].push({ data: write_shallow(mi.meta), type: 2 });\n });\n var aipayload = write_shallow(ai);\n bufs.push(write_varint49(aipayload.length));\n bufs.push(aipayload);\n midata.forEach(function(mid) {\n return bufs.push(mid);\n });\n });\n return u8concat(bufs);\n}\nfunction parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = [0];\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n while (ptr[0] < buf.length) {\n var tag = buf[ptr[0]] & 3;\n if (tag == 0) {\n var len = buf[ptr[0]++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[ptr[0]];\n if (c > 1)\n len |= buf[ptr[0] + 1] << 8;\n if (c > 2)\n len |= buf[ptr[0] + 2] << 16;\n if (c > 3)\n len |= buf[ptr[0] + 3] << 24;\n len >>>= 0;\n len++;\n ptr[0] += c;\n }\n chunks.push(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[ptr[0]] >> 2 & 7) + 4;\n offset = (buf[ptr[0]++] & 224) << 3;\n offset |= buf[ptr[0]++];\n } else {\n length = (buf[ptr[0]++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[ptr[0]] | buf[ptr[0] + 1] << 8;\n ptr[0] += 2;\n } else {\n offset = (buf[ptr[0]] | buf[ptr[0] + 1] << 8 | buf[ptr[0] + 2] << 16 | buf[ptr[0] + 3] << 24) >>> 0;\n ptr[0] += 4;\n }\n }\n chunks = [u8concat(chunks)];\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n if (offset > chunks[0].length)\n throw new Error(\"Invalid offset beyond length\");\n if (length >= offset) {\n chunks.push(chunks[0].slice(-offset));\n length -= offset;\n while (length >= chunks[chunks.length - 1].length) {\n chunks.push(chunks[chunks.length - 1]);\n length -= chunks[chunks.length - 1].length;\n }\n }\n chunks.push(chunks[0].slice(-offset, -offset + length));\n }\n }\n var o = u8concat(chunks);\n if (o.length != usz)\n throw new Error(\"Unexpected length: \".concat(o.length, \" != \").concat(usz));\n return o;\n}\nfunction decompress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push(parse_snappy_chunk(t, buf.slice(l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return u8concat(out);\n}\nfunction compress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var c = Math.min(buf.length - l, 268435455);\n var frame = new Uint8Array(4);\n out.push(frame);\n var usz = write_varint49(c);\n var L = usz.length;\n out.push(usz);\n if (c <= 60) {\n L++;\n out.push(new Uint8Array([c - 1 << 2]));\n } else if (c <= 256) {\n L += 2;\n out.push(new Uint8Array([240, c - 1 & 255]));\n } else if (c <= 65536) {\n L += 3;\n out.push(new Uint8Array([244, c - 1 & 255, c - 1 >> 8 & 255]));\n } else if (c <= 16777216) {\n L += 4;\n out.push(new Uint8Array([248, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255]));\n } else if (c <= 4294967296) {\n L += 5;\n out.push(new Uint8Array([252, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255, c - 1 >>> 24 & 255]));\n }\n out.push(buf.slice(l, l + c));\n L += c;\n frame[0] = 0;\n frame[1] = L & 255;\n frame[2] = L >> 8 & 255;\n frame[3] = L >> 16 & 255;\n l += c;\n }\n return u8concat(out);\n}\nfunction parse_old_storage(buf, sst, rsst, v) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var data_offset = (v > 1 ? 12 : 8) + popcnt(flags & (v > 1 ? 3470 : 398)) * 4;\n var ridx = -1, sidx = -1, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 512) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n data_offset += popcnt(flags & (v > 1 ? 12288 : 4096)) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n var ret;\n switch (buf[2]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else if (sidx > -1)\n ret = { t: \"s\", v: sst[sidx] };\n else if (!isNaN(ieee))\n ret = { t: \"n\", v: ieee };\n else\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction parse_new_storage(buf, sst, rsst) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(8, true);\n var data_offset = 12;\n var ridx = -1, sidx = -1, d128 = NaN, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 1) {\n d128 = readDecimal128LE(buf, data_offset);\n data_offset += 16;\n }\n if (flags & 2) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 4) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n if (flags & 8) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 16) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n var ret;\n switch (buf[1]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: d128 };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n break;\n case 10:\n ret = { t: \"n\", v: d128 };\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction write_new_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 5;\n switch (cell.t) {\n case \"n\":\n out[1] = 2;\n writeDecimal128LE(out, l, cell.v);\n flags |= 1;\n l += 16;\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 2;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[1] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 8;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, flags, true);\n return out.slice(0, l);\n}\nfunction write_old_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 3;\n switch (cell.t) {\n case \"n\":\n out[2] = 2;\n dv.setFloat64(l, cell.v, true);\n flags |= 32;\n l += 8;\n break;\n case \"b\":\n out[2] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 32;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[2] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 16;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(4, flags, true);\n return out.slice(0, l);\n}\nfunction parse_cell_storage(buf, sst, rsst) {\n switch (buf[0]) {\n case 0:\n case 1:\n case 2:\n case 3:\n return parse_old_storage(buf, sst, rsst, buf[0]);\n case 5:\n return parse_new_storage(buf, sst, rsst);\n default:\n throw new Error(\"Unsupported payload version \".concat(buf[0]));\n }\n}\nfunction parse_TSP_Reference(buf) {\n var pb = parse_shallow(buf);\n return parse_varint49(pb[1][0].data);\n}\nfunction write_TSP_Reference(idx) {\n var out = [];\n out[1] = [{ type: 0, data: write_varint49(idx) }];\n return write_shallow(out);\n}\nfunction parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var le = parse_shallow(entry.data);\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_TSP_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_TSP_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n data[key] = tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\");\n }\n break;\n }\n });\n return data;\n}\nfunction parse_TST_TileRowInfo(u8, type) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var cnt = varint_to_i32(pb[2][0].data) >>> 0;\n var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;\n var used_storage_u8, used_storage;\n if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {\n used_storage_u8 = (_f = (_e = pb[7]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data;\n used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;\n } else if (((_j = (_i = pb[4]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data) && type != 1) {\n used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;\n used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;\n } else\n throw \"NUMBERS Tile missing \".concat(type, \" cell storage\");\n var width = wide_offsets ? 4 : 1;\n var used_storage_offsets = u8_to_dataview(used_storage_u8);\n var offsets = [];\n for (var C = 0; C < used_storage_u8.length / 2; ++C) {\n var off = used_storage_offsets.getUint16(C * 2, true);\n if (off < 65535)\n offsets.push([C, off]);\n }\n if (offsets.length != cnt)\n throw \"Expected \".concat(cnt, \" cells, found \").concat(offsets.length);\n var cells = [];\n for (C = 0; C < offsets.length - 1; ++C)\n cells[offsets[C][0]] = used_storage.subarray(offsets[C][1] * width, offsets[C + 1][1] * width);\n if (offsets.length >= 1)\n cells[offsets[offsets.length - 1][0]] = used_storage.subarray(offsets[offsets.length - 1][1] * width);\n return { R: R, cells: cells };\n}\nfunction parse_TST_Tile(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var storage = ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) ? varint_to_i32(pb[7][0].data) >>> 0 > 0 ? 1 : 0 : -1;\n var ri = mappa(pb[5], function(u8) {\n return parse_TST_TileRowInfo(u8, storage);\n });\n return {\n nrows: varint_to_i32(pb[4][0].data) >>> 0,\n data: ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, [])\n };\n}\nfunction parse_TST_TableModelArchive(M, root, ws) {\n var _a;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n var store = parse_shallow(pb[4][0].data);\n var sst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[4][0].data)][0]);\n var rsst = ((_a = store[17]) == null ? void 0 : _a[0]) ? parse_TST_TableDataList(M, M[parse_TSP_Reference(store[17][0].data)][0]) : [];\n var tile = parse_shallow(store[3][0].data);\n var _R = 0;\n tile[1].forEach(function(t) {\n var tl = parse_shallow(t.data);\n var ref = M[parse_TSP_Reference(tl[2][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype));\n var _tile = parse_TST_Tile(M, ref);\n _tile.data.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var addr = encode_cell({ r: _R + R, c: C });\n var res = parse_cell_storage(buf, sst, rsst);\n if (res)\n ws[addr] = res;\n });\n });\n _R += _tile.nrows;\n });\n}\nfunction parse_TST_TableInfoArchive(M, root) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n var tableref = M[parse_TSP_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out);\n return out;\n}\nfunction parse_TN_SheetArchive(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_TSP_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m));\n });\n });\n return out;\n}\nfunction parse_TN_DocumentArchive(M, root) {\n var out = book_new();\n var pb = parse_shallow(root.data);\n var sheetoffs = mappa(pb[1], parse_TSP_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_TN_SheetArchive(M, m);\n root2.sheets.forEach(function(sheet, idx) {\n book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + \"_\" + idx, true);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n return out;\n}\nfunction parse_numbers_iwa(cfb) {\n var _a, _b, _c, _d;\n var M = {}, indices = [];\n cfb.FullPaths.forEach(function(p) {\n if (p.match(/\\.iwpv2/))\n throw new Error(\"Unsupported password protection\");\n });\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n var o;\n try {\n o = decompress_iwa_file(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa_file(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n M[packet.id] = packet.messages;\n indices.push(packet.id);\n });\n });\n if (!indices.length)\n throw new Error(\"File has no messages\");\n var docroot = ((_d = (_c = (_b = (_a = M == null ? void 0 : M[1]) == null ? void 0 : _a[0]) == null ? void 0 : _b.meta) == null ? void 0 : _c[1]) == null ? void 0 : _d[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1 && M[1][0];\n if (!docroot)\n indices.forEach(function(idx) {\n M[idx].forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_TN_DocumentArchive(M, docroot);\n}\nfunction write_tile_row(tri, data, SST) {\n var _a, _b, _c, _d;\n if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0]))\n throw \"Mutation only works on post-BNC storages!\";\n var wide_offsets = ((_d = (_c = tri[8]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && varint_to_i32(tri[8][0].data) > 0 || false;\n if (wide_offsets)\n throw \"Math only works with normal offsets\";\n var cnt = 0;\n var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];\n var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];\n for (var C = 0; C < data.length; ++C) {\n if (data[C] == null) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535);\n continue;\n }\n dv.setUint16(C * 2, last_offset, true);\n _dv.setUint16(C * 2, _last_offset, true);\n var celload, _celload;\n switch (typeof data[C]) {\n case \"string\":\n celload = write_new_storage({ t: \"s\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"s\", v: data[C] }, SST);\n break;\n case \"number\":\n celload = write_new_storage({ t: \"n\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"n\", v: data[C] }, SST);\n break;\n case \"boolean\":\n celload = write_new_storage({ t: \"b\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"b\", v: data[C] }, SST);\n break;\n default:\n throw new Error(\"Unsupported value \" + data[C]);\n }\n cell_storage.push(celload);\n last_offset += celload.length;\n _cell_storage.push(_celload);\n _last_offset += _celload.length;\n ++cnt;\n }\n tri[2][0].data = write_varint49(cnt);\n for (; C < tri[7][0].data.length / 2; ++C) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535, true);\n }\n tri[6][0].data = u8concat(cell_storage);\n tri[3][0].data = u8concat(_cell_storage);\n return cnt;\n}\nfunction write_numbers_iwa(wb, opts) {\n if (!opts || !opts.numbers)\n throw new Error(\"Must pass a `numbers` option -- check the README\");\n var ws = wb.Sheets[wb.SheetNames[0]];\n if (wb.SheetNames.length > 1)\n console.error(\"The Numbers writer currently writes only the first table\");\n var range = decode_range(ws[\"!ref\"]);\n range.s.r = range.s.c = 0;\n var trunc = false;\n if (range.e.c > 9) {\n trunc = true;\n range.e.c = 9;\n }\n if (range.e.r > 49) {\n trunc = true;\n range.e.r = 49;\n }\n if (trunc)\n console.error(\"The Numbers writer is currently limited to \".concat(encode_range(range)));\n var data = sheet_to_json(ws, { range: range, header: 1 });\n var SST = [\"~Sh33tJ5~\"];\n data.forEach(function(row) {\n return row.forEach(function(cell) {\n if (typeof cell == \"string\")\n SST.push(cell);\n });\n });\n var dependents = {};\n var indices = [];\n var cfb = CFB.read(opts.numbers, { type: \"base64\" });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (fi.type != 2)\n return;\n if (!fi.name.match(/\\.iwa/))\n return;\n var old_content = fi.content;\n var raw1 = decompress_iwa_file(old_content);\n var x2 = parse_iwa_file(raw1);\n x2.forEach(function(packet2) {\n indices.push(packet2.id);\n dependents[packet2.id] = { deps: [], location: fp, type: varint_to_i32(packet2.messages[0].meta[1][0].data) };\n });\n });\n indices.sort(function(x2, y2) {\n return x2 - y2;\n });\n var indices_varint = indices.filter(function(x2) {\n return x2 > 1;\n }).map(function(x2) {\n return [x2, write_varint49(x2)];\n });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (!fi.name.match(/\\.iwa/))\n return;\n var x2 = parse_iwa_file(decompress_iwa_file(fi.content));\n x2.forEach(function(ia) {\n ia.messages.forEach(function(m) {\n indices_varint.forEach(function(ivi) {\n if (ia.messages.some(function(mess) {\n return varint_to_i32(mess.meta[1][0].data) != 11006 && u8contains(mess.data, ivi[1]);\n })) {\n dependents[ivi[0]].deps.push(ia.id);\n }\n });\n });\n });\n });\n function get_unique_msgid() {\n for (var i = 927262; i < 2e6; ++i)\n if (!dependents[i])\n return i;\n throw new Error(\"Too many messages\");\n }\n var entry = CFB.find(cfb, dependents[1].location);\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var docroot;\n for (var xi = 0; xi < x.length; ++xi) {\n var packet = x[xi];\n if (packet.id == 1)\n docroot = packet;\n }\n var sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n var pb = parse_shallow(docroot.messages[0].data);\n {\n pb[6][0].data = write_varint49(range.e.r + 1);\n pb[7][0].data = write_varint49(range.e.c + 1);\n var cruidsref = parse_TSP_Reference(pb[46][0].data);\n var oldbucket = CFB.find(cfb, dependents[cruidsref].location);\n var _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n for (var j = 0; j < _x.length; ++j) {\n if (_x[j].id == cruidsref)\n break;\n }\n if (_x[j].id != cruidsref)\n throw \"Bad ColumnRowUIDMapArchive\";\n var cruids = parse_shallow(_x[j].messages[0].data);\n cruids[1] = [];\n cruids[2] = [], cruids[3] = [];\n for (var C = 0; C <= range.e.c; ++C) {\n var uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(C + 420690) }];\n cruids[1].push({ type: 2, data: write_shallow(uuid) });\n cruids[2].push({ type: 0, data: write_varint49(C) });\n cruids[3].push({ type: 0, data: write_varint49(C) });\n }\n cruids[4] = [];\n cruids[5] = [], cruids[6] = [];\n for (var R = 0; R <= range.e.r; ++R) {\n uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(R + 726270) }];\n cruids[4].push({ type: 2, data: write_shallow(uuid) });\n cruids[5].push({ type: 0, data: write_varint49(R) });\n cruids[6].push({ type: 0, data: write_varint49(R) });\n }\n _x[j].messages[0].data = write_shallow(cruids);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n delete pb[46];\n var store = parse_shallow(pb[4][0].data);\n {\n store[7][0].data = write_varint49(range.e.r + 1);\n var row_headers = parse_shallow(store[1][0].data);\n var row_header_ref = parse_TSP_Reference(row_headers[2][0].data);\n oldbucket = CFB.find(cfb, dependents[row_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != row_header_ref)\n throw \"Bad HeaderStorageBucket\";\n var base_bucket = parse_shallow(_x[0].messages[0].data);\n for (R = 0; R < data.length; ++R) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(R);\n _bucket[4][0].data = write_varint49(data[R].length);\n base_bucket[2][R] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var col_header_ref = parse_TSP_Reference(store[2][0].data);\n oldbucket = CFB.find(cfb, dependents[col_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != col_header_ref)\n throw \"Bad HeaderStorageBucket\";\n base_bucket = parse_shallow(_x[0].messages[0].data);\n for (C = 0; C <= range.e.c; ++C) {\n _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(C);\n _bucket[4][0].data = write_varint49(range.e.r + 1);\n base_bucket[2][C] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var sstref = parse_TSP_Reference(store[4][0].data);\n (function() {\n var sentry = CFB.find(cfb, dependents[sstref].location);\n var sx = parse_iwa_file(decompress_iwa_file(sentry.content));\n var sstroot;\n for (var sxi = 0; sxi < sx.length; ++sxi) {\n var packet2 = sx[sxi];\n if (packet2.id == sstref)\n sstroot = packet2;\n }\n var sstdata = parse_shallow(sstroot.messages[0].data);\n {\n sstdata[3] = [];\n var newsst = [];\n SST.forEach(function(str, i) {\n newsst[1] = [{ type: 0, data: write_varint49(i) }];\n newsst[2] = [{ type: 0, data: write_varint49(1) }];\n newsst[3] = [{ type: 2, data: stru8(str) }];\n sstdata[3].push({ type: 2, data: write_shallow(newsst) });\n });\n }\n sstroot.messages[0].data = write_shallow(sstdata);\n var sy = write_iwa_file(sx);\n var raw32 = compress_iwa_file(sy);\n sentry.content = raw32;\n sentry.size = sentry.content.length;\n })();\n var tile = parse_shallow(store[3][0].data);\n {\n var t = tile[1][0];\n delete tile[2];\n var tl = parse_shallow(t.data);\n {\n var tileref = parse_TSP_Reference(tl[2][0].data);\n (function() {\n var tentry = CFB.find(cfb, dependents[tileref].location);\n var tx = parse_iwa_file(decompress_iwa_file(tentry.content));\n var tileroot;\n for (var sxi = 0; sxi < tx.length; ++sxi) {\n var packet2 = tx[sxi];\n if (packet2.id == tileref)\n tileroot = packet2;\n }\n var tiledata = parse_shallow(tileroot.messages[0].data);\n {\n delete tiledata[6];\n delete tile[7];\n var rowload = new Uint8Array(tiledata[5][0].data);\n tiledata[5] = [];\n var cnt = 0;\n for (var R2 = 0; R2 <= range.e.r; ++R2) {\n var tilerow = parse_shallow(rowload);\n cnt += write_tile_row(tilerow, data[R2], SST);\n tilerow[1][0].data = write_varint49(R2);\n tiledata[5].push({ data: write_shallow(tilerow), type: 2 });\n }\n tiledata[1] = [{ type: 0, data: write_varint49(range.e.c + 1) }];\n tiledata[2] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n tiledata[3] = [{ type: 0, data: write_varint49(cnt) }];\n tiledata[4] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n }\n tileroot.messages[0].data = write_shallow(tiledata);\n var ty = write_iwa_file(tx);\n var raw32 = compress_iwa_file(ty);\n tentry.content = raw32;\n tentry.size = tentry.content.length;\n })();\n }\n t.data = write_shallow(tl);\n }\n store[3][0].data = write_shallow(tile);\n }\n pb[4][0].data = write_shallow(store);\n }\n docroot.messages[0].data = write_shallow(pb);\n var y = write_iwa_file(x);\n var raw3 = compress_iwa_file(y);\n entry.content = raw3;\n entry.size = entry.content.length;\n return cfb;\n}\nfunction fix_opts_func(defaults/*:Array >*/)/*:{(o:any):void}*/ {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nfunction fix_read_opts(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\n\nfunction fix_write_opts(opts) {\nfix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\nfunction get_sheet_type(n/*:string*/)/*:string*/ {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path/*:string*/, relsPath/*:string*/, sheet, idx/*:number*/, sheetRels, sheets, stype/*:string*/, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments and threaded comments */\n\t\tvar tcomments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tvar dfile = \"\";\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tvar comments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments, false);\n\t\t\t}\n\t\t\tif(sheetRels[sheet][n].Type == RELS.TCMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\ttcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile, true), opts));\n\t\t\t}\n\t\t});\n\t\tif(tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x/*:string*/)/*:string*/ { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip/*:ZIP*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tmake_ssf();\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof parse_numbers_iwa != \"undefined\") {\n\t\t\tif(zip.FileIndex) return parse_numbers_iwa(zip);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn parse_numbers_iwa(_zip);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')/*:?any*/));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({}/*:any*/);\n\tvar styles = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({}/*:any*/);\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({}/*:any*/);\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, \"s5s\"));\n\n\tif((dir.metadata || []).length >= 1) {\n\t\t/* TODO: MDX and other types of metadata */\n\t\topts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])),dir.metadata[0],opts);\n\t}\n\n\tif((dir.people || []).length >= 1) {\n\t\topts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])),opts);\n\t}\n\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: dup(table_fmt)\n\t}/*:any*/);\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\n/*:: declare var decrypt_agile:any; */\n\tif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\n/*:: declare var decrypt_std76:any; */\n\tif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(opts.bookType == \"numbers\") return write_numbers_iwa(wb, opts);\n\tif(opts.bookType == \"xlsb\") return write_zip_xlsxb(wb, opts);\n\treturn write_zip_xlsx(wb, opts);\n}\n\n/* XLSX and XLSB writing are very similar. Originally they were unified in one\n export function. This is horrible for tree shaking in the common case (most\n applications need to export files in one format) so this function supports\n both formats while write_zip_xlsx only handles XLSX */\nfunction write_zip_xlsxb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta(f));\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction write_zip_xlsx(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_xml(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".\" + wbext;\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".\" + wbext, RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_xml(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_xml(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_xml(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_xml(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_xml());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array*/ {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64_decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data/*:string*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64_decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\to.type = \"binary\";\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64_decode(d);\n\td = $cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data/*:string*/)/*:string*/ {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treset_cp();\n\tvar o = opts||{};\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tif(typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && !o.type) o.type = typeof Deno !== \"undefined\" ? \"buffer\" : \"array\";\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); if(typeof Uint8Array !== 'undefined' && !has_buf) o.type = \"array\"; }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t}\n\tif(DBF_SUPPORTED_VERSIONS.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb/*:CFBContainer*/, o/*:WriteOpts*/)/*:any*/ {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\n/*:: declare var encrypt_agile:any; */\nfunction write_zip_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_typeXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip_xlsx(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_denouement(z/*:any*/, o/*:?WriteOpts*/)/*:any*/ {\n\tvar oopts = {};\n\tvar ftype = has_buf ? \"nodebuffer\" : (typeof Uint8Array !== \"undefined\" ? \"array\" : \"string\");\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = ftype;\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = ftype; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: /*::(*/{\"nodebuffer\": \"buffer\", \"string\": \"binary\"}/*:: :any)*/[oopts.type] || oopts.type, compression: !!o.compression}) : z.generate(oopts);\n\tif(typeof Deno !== \"undefined\") {\n\t\tif(typeof out == \"string\") {\n\t\t\tif(o.type == \"binary\" || o.type == \"base64\") return out;\n\t\t\tout = new Uint8Array(s2ab(out));\n\t\t}\n\t}\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(/*::(*/out/*:: :any)*/) : out;\n}\n\nfunction write_cfb_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = opts||{};\n\tvar cfb/*:CFBContainer*/ = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out/*:string*/, opts/*:WriteOpts*/, bom/*:?string*/)/*:any*/ {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse if(typeof TextEncoder !== \"undefined\") return new TextEncoder().encode(o);\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out/*:string*/, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64_encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSyncXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSyncXLSX(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\treturn write_zip_typeXLSX(wb, o);\n}\n\nfunction writeSync(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSync(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\tvar idx = 0;\n\tif(o.sheet) {\n\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t}\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'txt': return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'csv': return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'dbf': return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'prn': return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'rtf': return write_string_type(RTF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'eth': return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'numbers':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o/*:WriteFileOpts*/) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileSyncXLSX(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSyncXLSX(wb, o);\n}\n\n\nfunction writeFileAsync(filename/*:string*/, wb/*:Workbook*/, opts/*:?WriteFileOpts*/, cb/*:?(e?:ErrnoError)=>void*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts/*:any*/);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\n/*::\ntype MJRObject = {\n\trow: any;\n\tisempty: boolean;\n};\n*/\nfunction make_json_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, header/*:number*/, hdr/*:Array*/, dense/*:boolean*/, o/*:Sheet2JSONOpts*/)/*:MJRObject*/ {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row/*:any*/ = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw && (val.t !== \"n\" || (val.t === \"n\" && o.rawNumbers !== false)) ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar out/*:Array*/ = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, fs/*:number*/, rs/*:number*/, FS/*:string*/, o/*:Sheet2CSVOpts*/)/*:?string*/ {\n\tvar isempty = true;\n\tvar row/*:Array*/ = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar w = 0;\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tif(row || (o.blankrows !== false)) out.push((w++ ? RS : \"\") + row);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof $cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = $cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet/*:Worksheet*/)/*:Array*/ {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols/*:Array*/ = [], C;\n\tvar cmds/*:Array*/ = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws/*:Worksheet*/ = _ws || ({}/*:any*/);\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell/*:Cell*/;\n\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr/*:Array*/ = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R/*:number*/) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = ws_get_cell_stub(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || table_fmt[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js/*:Array*/, opts)/*:Worksheet*/ { return sheet_add_json(null, js, opts); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws/*:Worksheet*/, R, C/*:?number*/)/*:Cell*/ {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb/*:Workbook*/, sh/*:number|string*/) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nfunction book_new()/*:Workbook*/ {\n\treturn { SheetNames: [], Sheets: {} };\n}\n\n/* add a worksheet to the end of a given workbook */\nfunction book_append_sheet(wb/*:Workbook*/, ws/*:Worksheet*/, name/*:?string*/, roll/*:?boolean*/)/*:string*/ {\n\tvar i = 1;\n\tif(!name) for(; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tif(roll && wb.SheetNames.indexOf(name) >= 0) {\n\t\tvar m = name.match(/(^.*?)(\\d+)$/);\n\t\ti = m && +m[2] || 0;\n\t\tvar root = m && m[1] || name;\n\t\tfor(++i; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = root + i) == -1) break;\n\t}\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n\treturn name;\n}\n\n/* set sheet visibility (visible/hidden/very hidden) */\nfunction book_set_sheet_visibility(wb/*:Workbook*/, sh/*:number|string*/, vis/*:number*/) {\n\tif(!wb.Workbook) wb.Workbook = {};\n\tif(!wb.Workbook.Sheets) wb.Workbook.Sheets = [];\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tif(!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n}\n\n/* set number format */\nfunction cell_set_number_format(cell/*:Cell*/, fmt/*:string|number*/) {\n\tcell.z = fmt;\n\treturn cell;\n}\n\n/* set cell hyperlink */\nfunction cell_set_hyperlink(cell/*:Cell*/, target/*:string*/, tooltip/*:?string*/) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target }/*:Hyperlink*/);\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n}\nfunction cell_set_internal_link(cell/*:Cell*/, range/*:string*/, tooltip/*:?string*/) { return cell_set_hyperlink(cell, \"#\" + range, tooltip); }\n\n/* add to cell comments */\nfunction cell_add_comment(cell/*:Cell*/, text/*:string*/, author/*:?string*/) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n}\n\n/* set array formula and flush related cells */\nfunction sheet_set_array_formula(ws/*:Worksheet*/, range, formula/*:string*/, dynamic/*:boolean*/) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) {\n\t\t\tcell.f = formula;\n\t\t\tif(dynamic) cell.D = true;\n\t\t}\n\t}\n\treturn ws;\n}\n\nvar utils/*:any*/ = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: sheet_to_html,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json,\n\tsheet_get_cell: ws_get_cell_stub,\n\tbook_new: book_new,\n\tbook_append_sheet: book_append_sheet,\n\tbook_set_sheet_visibility: book_set_sheet_visibility,\n\tcell_set_number_format: cell_set_number_format,\n\tcell_set_hyperlink: cell_set_hyperlink,\n\tcell_set_internal_link: cell_set_internal_link,\n\tcell_add_comment: cell_add_comment,\n\tsheet_set_array_formula: sheet_set_array_formula,\n\tconsts: {\n\t\tSHEET_VISIBLE: 0,\n\t\tSHEET_HIDDEN: 1,\n\t\tSHEET_VERY_HIDDEN: 2\n\t}\n};\n\nvar _Readable;\nfunction set_readable(R) { _Readable = R; }\n\nfunction write_csv_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable();\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row/*:?string*/ = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar R = r.s.r;\n\tvar BOM = false, w = 0;\n\tstream._read = function() {\n\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\twhile(R <= r.e.r) {\n\t\t\t++R;\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\tif(row != null) {\n\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\tif(row || (o.blankrows !== false)) return stream.push((w++ ? RS : \"\") + row);\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nfunction write_html_stream(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*/) {\n\tvar stream = _Readable();\n\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tstream.push(header);\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tstream.push(make_html_preamble(ws, r, o));\n\tvar R = r.s.r;\n\tvar end = false;\n\tstream._read = function() {\n\t\tif(R > r.e.r) {\n\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\treturn stream.push(null);\n\t\t}\n\t\twhile(R <= r.e.r) {\n\t\t\tstream.push(make_html_row(ws, r, R, o));\n\t\t\t++R;\n\t\t\tbreak;\n\t\t}\n\t};\n\treturn stream;\n}\n\nfunction write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable({objectMode:true});\n\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tR = r.s.r + offset;\n\tstream._read = function() {\n\t\twhile(R <= r.e.r) {\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t++R;\n\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\tstream.push(row.row);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nvar __stream = {\n\tto_json: write_json_stream,\n\tto_html: write_html_stream,\n\tto_csv: write_csv_stream,\n set_readable: set_readable\n};\nexport const version = XLSX.version;\nexport {\n\tparse_xlscfb,\n\tparse_zip,\n\treadSync as read,\n\treadFileSync as readFile,\n\treadFileSync,\n\twriteSync as write,\n\twriteFileSync as writeFile,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteSyncXLSX as writeXLSX,\n\twriteFileSyncXLSX as writeFileXLSX,\n\tutils,\n\t__stream as stream,\n\tSSF,\n\tCFB\n};\n","import e from\"react\";import t from\"file-saver\";import*as o from\"xlsx\";!function(e,t){void 0===t&&(t={});var o=t.insertAt;if(e&&\"undefined\"!=typeof document){var s=document.head||document.getElementsByTagName(\"head\")[0],n=document.createElement(\"style\");n.type=\"text/css\",\"top\"===o&&s.firstChild?s.insertBefore(n,s.firstChild):s.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}(\".download-button{border:none;color:#fff;padding:15px 32px;text-align:center;text-decoration:none;display:inline-block;font-size:16px}\");const s=({data:t,title:o,fileName:s,btnClassName:a,btnColor:l=\"#4CAF50\",multipleSheets:d})=>e.createElement(\"div\",null,e.createElement(\"button\",{className:`${a} download-button`,onClick:()=>n(t,s,d),style:{background:l}},o||\"Download\")),n=(e,s,n)=>{const a={Sheets:{},SheetNames:[]};if(n)e.forEach((e=>{const{sheetName:t,details:s}=e,n=o.utils.json_to_sheet(s);a.Sheets[t]=n,a.SheetNames.push(t)}));else{const t=o.utils.json_to_sheet(e);a.Sheets.data=t,a.SheetNames.push(\"data\")}const l=o.write(a,{bookType:\"xlsx\",type:\"array\"}),d=new Blob([l],{type:\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\"});t(d,s+\".xlsx\")};export{s as JsonToExcel,n as exportToExcel};\n","import { useRef } from \"react\";\r\nimport { Button, Modal, Table } from \"react-bootstrap\";\r\nimport generatePDF from \"react-to-pdf\";\r\nimport { exportToExcel } from 'react-json-to-excel';\r\n\r\nconst ModalReporte = (props) => {\r\n const {\r\n estado,\r\n onCloseModal,\r\n data,\r\n data2,\r\n date,\r\n date2,\r\n compraventa,\r\n formadepago,\r\n } = props;\r\n const _ = require(\"lodash\");\r\n const numbers = _.filter(data, (rowsDatas) => rowsDatas.anulado.data == 0)\r\n const sum = _.sumBy(numbers, (rowsDatas) => Number(rowsDatas.totalFactura));\r\n const tableRef = useRef(null);\r\n const onDownload = () => {\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n for (let j = 0; j < data2.length; j++) {\r\n data.push({\r\n producto: data2[j].productox,\r\n });\r\n }\r\n\r\n }\r\n exportToExcel(data, 'downloadfilename')\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Reporte Fecha: {date} al {date2}{\" \"}\r\n \r\n \r\n\r\n \r\n \r\n generatePDF(tableRef, { filename: `${date}.pdf` })}\r\n >\r\n Descargar PDF\r\n \r\n

    \r\n
    \r\n
    \r\n

    \r\n Rendición Fecha {date} al {date2}{\" \"}\r\n

    \r\n
    \r\n \r\n \r\n \r\n \r\n Fecha\r\n \r\n \r\n N. Factura\r\n \r\n \r\n Razon Social\r\n \r\n \r\n Ruc\r\n \r\n \r\n Descripcion\r\n \r\n \r\n {formadepago}\r\n \r\n \r\n Compr.\r\n \r\n \r\n Tipo Factura\r\n \r\n \r\n Monto\r\n \r\n \r\n \r\n \r\n {data.map((item) => {\r\n for (let i = 0; i < data2.current.length; i++) {\r\n if (data2.current[i].idfactura == item.idFactura) {\r\n item.producto = data2.current[i].producto;\r\n }\r\n\r\n }\r\n let monto\r\n let comprobante\r\n if (item.anulado.data == 0) {\r\n monto = item.totalFactura\r\n comprobante = item.numerodecomprobante\r\n }\r\n else {\r\n monto = item.motivoanulacion\r\n comprobante = \"Anulado\"\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total\r\n \r\n \r\n {sum.toLocaleString()}\r\n \r\n \r\n \r\n
    \r\n {item.fechafactura}\r\n \r\n \r\n {item.pf1}-{item.pf2}-{item.numerofactura}\r\n \r\n \r\n {item.razonsocial}\r\n \r\n {item.ruc}\r\n \r\n {item.producto}{\" \"}\r\n \r\n {item.formadepago}\r\n \r\n {comprobante}\r\n \r\n {item.tipoFactura}\r\n \r\n {monto.toLocaleString()}\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n

    \r\n Controlado por:\r\n ____________\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ModalReporte;\r\n","import React, { Fragment,useCallback,useEffect,useState,useMemo,useRef, useReducer} from \"react\";\r\n import { Row,Col, Card,Button,} from \"react-bootstrap\";\r\n import { useTable, useGlobalFilter, useFilters, usePagination } from 'react-table';\r\n import { COLUMNS } from './Columns';\r\n import { GlobalFilter } from './GlobalFilter';\r\n import './filtering.css';\r\n import { getDetalleFacturaId, getFacturasByQuery} from '../../Api/facturacion'\r\n import { DownloadTableExcel } from 'react-export-table-to-excel';\r\n import { TailSpin } from 'react-loader-spinner'\r\n import Swal from \"sweetalert2\";\r\nimport ModalReporte from \"./sis/ModalOpciones/ModalReporteDia\";\r\n const showReducer = (curShow, state) => {\r\n switch (state.type) {\r\n case \"SHOW\":\r\n return {\r\n isShow: true,\r\n onReturnValue: state.onReturnValue,\r\n TimbradoObject: state.TimbradoObject,\r\n };\r\n case \"END\":\r\n return { ...curShow, isShow: false };\r\n default :\r\n return { ...curShow, isShow: false };\r\n }\r\n};\r\n const Reporte = () => {\r\n const [reducer, dispatchReducer] = useReducer(showReducer, {\r\n isShow: false,\r\n TimbradoObject: null,\r\n onReturnValue: null,\r\n });\r\n const [loading, setLoading] = useState(true);\r\n const compraventa = \"\";\r\n const [filterData, setValue] = useState([]);\r\n const [data, setdata] = useState([]);\r\n const [data2, setdata2] = useState([]);\r\n const data3 = useRef();\r\n const columns = useMemo( () => COLUMNS, [] )\r\n const assigmentValue = useCallback(async () => {\r\n\r\n try {\r\n const producto = {\r\n fechaInicio: '1991-01-01',\r\n fechaFin: '1991-01-01',\r\n }\r\n \r\n const result = await getFacturasByQuery(producto);\r\n for (let i = 0; i < result.length; i++) {\r\n if (result[i].anulado.data == 0) {\r\n result[i].anulado.data = \"No Anulado\";\r\n } else {\r\n result[i].anulado.data = \"Anulado\";\r\n result[i].totalFactura=0\r\n }\r\n \r\n }\r\n \r\n setdata([...result])\r\n setValue({\r\n fechaInicio : '1991-01-01',\r\n fechaFin: '1991-01-01'\r\n }\r\n )\r\n setLoading(false);\r\n } catch (err) {\r\n console.log(err);\r\n setLoading(false);\r\n }\r\n });\r\n useEffect(() => {\r\n assigmentValue();\r\n }, []);\r\n\r\n const [validated, setValidated] = useState(false);\r\n const handleSubmit = (event) => {\r\n const form = event.currentTarget;\r\n if (form.checkValidity() === false) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n setValidated(true);\r\n };\r\n const Filtrar = async () => {\r\n \r\n try {\r\n if (filterData.fechaFin==\"\")\r\n {\r\n filterData.fechaFin=\"1991-01-01\"\r\n }\r\n if ((filterData.fechaInicio==\"\"))\r\n {\r\n filterData.fechaInicio=\"1991-01-01\"\r\n }\r\n const result = await getFacturasByQuery(filterData);\r\n setdata([...result]);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n \r\n const onAgregarTimbrado = async() => {\r\n Swal.fire({\r\n title: 'Generando',\r\n html: 'Generando Reporte',// add html attribute if you want or remove\r\n allowOutsideClick: true,\r\n showCancelButton: true,\r\n showConfirmButton: false,\r\n \r\n });\r\n \r\n const producto = {\r\n fechaInicio:filterData.fecha,\r\n fechaFin: filterData.fecha2,\r\n }\r\n const result = await getFacturasByQuery(producto); \r\n \r\n \r\n let resulting = result\r\n setdata2([...resulting])\r\n let productox=''\r\n let datas=[]\r\n for (let i = 0; i < resulting.length; i++) {\r\n const result2= await getDetalleFacturaId(resulting[i].idFactura)\r\n for (let i = 0; i < result2.length; i++) {\r\n productox=productox+result2[i].cantidad+\" \"+result2[i].producto+\" \"\r\n }\r\n datas.push({\r\n idfactura:result2[0].idFactura,\r\n producto:productox\r\n })\r\n productox=''\r\n } \r\n data3.current=datas\r\n Swal.close();\r\n dispatchReducer({\r\n type: \"SHOW\",\r\n });\r\n \r\n };\r\n const onCloseModal = () => {\r\n dispatchReducer({ type: \"END\" });\r\n };\r\n \r\n const tableInstance = useTable({\r\n columns,\r\n data,\t\r\n initialState : {pageSize: 200,pageIndex : 0}\r\n }, useFilters, useGlobalFilter, usePagination)\r\n \r\n const { \r\n getTableProps, \r\n getTableBodyProps, \r\n headerGroups, \r\n prepareRow,\r\n state,\r\n page,\r\n gotoPage,\r\n pageCount,\r\n pageOptions,\r\n nextPage,\r\n previousPage,\r\n canNextPage,\r\n canPreviousPage,\r\n setGlobalFilter,\r\n } = tableInstance\r\n \r\n \r\n const {globalFilter, pageIndex} = state\r\n \r\n const tableRef = useRef(null);\r\n \r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Reporte Facturas\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Reporte Gral.\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n {\r\n setValue({\r\n ...filterData,\r\n fecha: e.target.value,\r\n });\r\n }}\r\n \r\n \r\n\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({\r\n ...filterData,\r\n fecha2: e.target.value,\r\n });\r\n }}\r\n \r\n \r\n\r\n />\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n\r\n \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Reporte Extendido en Excel\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n {\r\n setValue({\r\n ...filterData,\r\n fechaInicio: e.target.value,\r\n });\r\n }}\r\n \r\n \r\n\r\n />\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n {\r\n setValue({\r\n ...filterData,\r\n fechaFin: e.target.value,\r\n });\r\n }}\r\n \r\n\r\n />\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n \r\n

    \r\n \r\n \r\n \r\n {headerGroups.map(headerGroup => (\r\n \r\n {headerGroup.headers.map(column => (\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {page.map((row) => {\r\n prepareRow(row)\r\n return(\r\n \r\n {row.cells.map((cell) => {\r\n return \r\n })}\r\n \r\n )\r\n })}\r\n \r\n
    \r\n {column.render('Header')}\r\n {column.canFilter ? column.render('Filter') : null}\r\n
    {cell.render('Cell')}
    \r\n
    \r\n \r\n Page{' '}\r\n \r\n {pageIndex + 1} of {pageOptions.length}\r\n {''}\r\n \r\n \r\n Go to page : {' '}\r\n { \r\n const pageNumber = e.target.value ? Number(e.target.value) - 1 : 0 \r\n gotoPage(pageNumber)\r\n } } \r\n />\r\n \r\n
    \r\n
    \t\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {reducer.isShow && (\r\n \r\n )} \r\n \r\n \r\n
    \r\n )\r\n }\r\n export default Reporte;","import { useState } from \"react\";\r\nimport { Button, Modal } from \"react-bootstrap\";\r\n\r\n\r\nconst ModalPDV = (props) => {\r\n const {\r\n estado,\r\n onCloseModal,\r\n onReturnValue,\r\n defaultValue,\r\n isNew\r\n } = props;\r\n const [formData3, setValue] = useState(defaultValue);\r\n const handleSubmit2 = (event) => {\r\n event.preventDefault();\r\n onReturnValue(formData3,isNew);\r\n }\r\n return (\r\n <>\r\n\r\n \r\n\r\n \r\n Agregar Punto de Venta\r\n \r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n { setValue({ ...formData3, codigo: e.target.value }) }}\r\n \r\n\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n { setValue({ ...formData3, nombre: e.target.value }) }}\r\n \r\n\r\n />\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n\r\n\r\n\r\n\r\n\r\n
    \r\n \r\n\r\n \r\n\r\n\r\n \r\n );\r\n}\r\n\r\nexport default ModalPDV;","import { CALL_API2 } from \"../Utils/const\";\r\nimport { getAuthToken } from \"../context/auth-context\";\r\n\r\nexport async function getAllPuntoVenta() {\r\n const token = getAuthToken();\r\n const result = await fetch(`${CALL_API2}/punto-venta`, {\r\n headers: { Authorization: `Bearer ${token}` },\r\n });\r\n\r\n const data = await result.json();\r\n\r\n if (!result.ok) {\r\n throw new Error(data.message);\r\n }\r\n\r\n return data.result;\r\n}\r\n\r\nexport async function getPuntoVentaById(idPunto) {\r\n const token = getAuthToken();\r\n const response = await fetch(`${CALL_API2}/punto-venta/${idPunto}`, {\r\n headers: { Authorization: `Bearer ${token}` },\r\n });\r\n const data = await response.json();\r\n\r\n if (!response.ok) {\r\n throw new Error(data.message);\r\n }\r\n return data.result;\r\n}\r\n\r\nexport async function savePuntoVenta(puntoObject) {\r\n \r\n const { isNew, idPunto } = puntoObject;\r\n const token = getAuthToken();\r\n let urlSend = `${CALL_API2}/punto-venta`;\r\n\r\n let method = \"POST\";\r\n\r\n if (puntoObject.isNew) delete puntoObject.isNew;\r\n if (puntoObject.idPunto) delete puntoObject.idPunto;\r\n\r\n if (!isNew) {\r\n urlSend = `${urlSend}/${idPunto}`;\r\n method = \"PUT\";\r\n }\r\n\r\n const result = await fetch(urlSend, {\r\n method: method,\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(puntoObject),\r\n });\r\n\r\n const data = await result.json();\r\n\r\n if (!result.ok) {\r\n throw new Error(data.message);\r\n }\r\n\r\n return data.isSaved;\r\n}\r\n\r\nexport async function deletePuntoVenta(idPunto) {\r\n const token = getAuthToken();\r\n const response = await fetch(`${CALL_API2}/punto-venta/${idPunto}`, {\r\n headers: { Authorization: `Bearer ${token}` },\r\n method: \"DELETE\",\r\n });\r\n const data = await response.json();\r\n\r\n if (!response.ok) {\r\n throw new Error(data.message);\r\n }\r\n return data.isDeleted;\r\n}\r\n","import React, {\r\n Fragment,\r\n useCallback,\r\n useEffect,\r\n useReducer,\r\n useState,\r\n} from \"react\";\r\nimport ModalPDV from \"../sis/ModalOpciones/ModalPDV\"\r\nimport {\r\n Col,\r\n Card,\r\n Table,\r\n Button,\r\n} from \"react-bootstrap\";\r\nimport { getAllPuntoVenta, savePuntoVenta } from \"../../../Api/puntoVenta\";\r\nimport Swal from \"sweetalert2\";\r\nconst showReducer = (curShow, state) => {\r\n switch (state.type) {\r\n case \"SHOW\":\r\n return {\r\n isShow: true,\r\n onReturnValue: state.onReturnValue,\r\n };\r\n case \"SHOW2\":\r\n return {\r\n isShow2: true,\r\n onReturnValue: state.onReturnValue,\r\n };\r\n case \"END\":\r\n return { ...curShow, isShow: false, isShow2: false };\r\n default:\r\n return { ...curShow, isShow: false };\r\n }\r\n};\r\nconst Opuntodeventa = () => {\r\n const [defaultValue, setRow] = useState([]);\r\n const [reducer, dispatchReducer] = useReducer(showReducer, {\r\n isShow: false,\r\n isShow2: false,\r\n TimbradoObject: null,\r\n onReturnValue: null,\r\n });\r\n const [listSucursal, setListSucursal] = useState([]);\r\n const onLoadValuesSucursal = useCallback(async () => {\r\n try {\r\n const listResult = await getAllPuntoVenta();\r\n setListSucursal([...listResult]);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n });\r\n useEffect(() => {\r\n onLoadValuesSucursal();\r\n }, []);\r\n const OnRowClick = (rowData) => {\r\n setRow(rowData)\r\n dispatchReducer({\r\n type: \"SHOW2\",\r\n });\r\n };\r\n\r\n const onAgregarSucursal = () => {\r\n setRow(\"\");\r\n dispatchReducer({\r\n type: \"SHOW\",\r\n });\r\n };\r\n const onCloseModal = () => {\r\n dispatchReducer({ type: \"END\" });\r\n };\r\n const onReturnSucursaldata = async (data,isNew) => {\r\n dispatchReducer({ type: \"END\" }); \r\n try {\r\n const result = await savePuntoVenta({ ...data, isNew });\r\n\r\n if (result) {\r\n if (result) {\r\n Swal.fire({\r\n title: \"Punto de venta cargado\",\r\n html: `Se cargo correctalmente el punto de venta`,\r\n icon: \"success\",\r\n confirmButtonColor: 'black',\r\n });\r\n const listResult = await getAllPuntoVenta();\r\n setListSucursal([...listResult]);\r\n \r\n }\r\n }\r\n } catch (err) {\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Oops...\",\r\n text: `${err}`,\r\n });\r\n }\r\n };\r\n\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n Punto de venta \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {listSucursal.slice(0, 11).map((item,index) => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n );\r\n })}\r\n\r\n \r\n
    \r\n Codigo\r\n \r\n Punto de venta\r\n \r\n Opciones\r\n

    {item.codigo}

    {item.nombre}

    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {reducer.isShow && (\r\n \r\n )}\r\n {reducer.isShow2 && (\r\n \r\n )}\r\n
    \r\n )\r\n}\r\nexport default Opuntodeventa;","import React from 'react';\r\n\r\nexport const ColumnFilter = ( { column } ) => {\r\n\t\r\n\tconst {filterValue, setFilter} = column\r\n\treturn(\r\n\t\t
    \r\n\t\t\r\n\t\t\t setFilter(e.target.value)} />\r\n\t\t
    \r\n\t)\r\n} ","import {format} from 'date-fns';\r\nimport { ColumnFilter } from './ColumnFilter';\r\nexport const COLUMNS = [\r\n\t{\r\n\t\tHeader : 'id ',\r\n\t\tFooter : 'id',\r\n\t\taccessor: 'idClientes',\r\n\t\tFilter: ColumnFilter,\r\n\t\t//disableFilters: true,\r\n\t},\r\n\t{\r\n\t\tHeader : 'nombre',\r\n\t\tFooter : 'nombre',\r\n\t\taccessor: 'nombre',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'ruc',\r\n\t\tFooter : 'ruc',\r\n\t\taccessor: 'ruc',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t\r\n\t{\r\n\t\tHeader : 'razonsocial',\r\n\t\tFooter : 'razonsocial',\r\n\t\taccessor: 'razonsocial',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'telefono',\r\n\t\tFooter : 'telefono',\r\n\t\taccessor: 'telefono',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Seguro',\r\n\t\tFooter : 'Seguro',\r\n\t\taccessor: 'seguro',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n]\r\nexport const COLUMNSCOMPRA = [\r\n\t{\r\n\t\tHeader: () => (\r\n\t\t\tFactura),\r\n\t\taccessor: 'idFactura',\r\n\t\tCell: (props) => {\r\n\t\t\treturn (\r\n\t\t\t

    \r\n\t\t\t\t{props.value}\r\n\t\t\t

    \r\n\t\t\t);\r\n\t\t },\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t\r\n\t{\r\n\t\tHeader: () => (\r\n\t\t\tCant.),\r\n\t\taccessor: 'cantidad',\r\n\t\tCell: (props) => {\r\n\t\t\treturn (\r\n\t\t\t

    \r\n\t\t\t\t{props.value}\r\n\t\t\t

    \r\n\t\t\t);\r\n\t\t },\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader: () => (\r\n\t\t\tArtcod.),\r\n\t\t\r\n\t\taccessor: 'artcod',\r\n\t\tCell: (props) => {\r\n\t\t\treturn (\r\n\t\t\t

    \r\n\t\t\t\t{props.value}\r\n\t\t\t

    \r\n\t\t\t);\r\n\t\t },\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader: () => (\r\n\t\t\tProducto),\r\n\t\taccessor: 'producto',\r\n\t\tCell: (props) => {\r\n\t\t\treturn (\r\n\t\t\t

    \r\n\t\t\t\t{props.value}\r\n\t\t\t

    \r\n\t\t\t);\r\n\t\t },\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t\r\n\t{\r\n\t\tHeader: () => (\r\n\t\t\tPrecio),\r\n\t\t\r\n\t\taccessor: 'precio',\r\n\t\tCell: (props) => {\r\n\t\t\treturn (\r\n\t\t\t

    \r\n\t\t\t\t{props.value}\r\n\t\t\t

    \r\n\t\t\t);\r\n\t\t },\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader: () => (\r\n\t\t\tTotal),\r\n\t\t\r\n\t\taccessor: 'total',\r\n\t\tCell: (props) => {\r\n\t\t\treturn (\r\n\t\t\t

    \r\n\t\t\t\t{props.value}\r\n\t\t\t

    \r\n\t\t\t);\r\n\t\t },\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n]\r\nexport const COLUMNS2 = [\r\n\t{\r\n\t\tHeader : 'id',\r\n\t\tFooter : 'id',\r\n\t\taccessor: 'idFactura',\r\n\t\tFilter: ColumnFilter,\r\n\t\t//disableFilters: true,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Cod Suc',\r\n\t\tFooter : 'Cod Suc',\r\n\t\taccessor: 'pf1',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Cod PDE',\r\n\t\tFooter : 'Nº de Factura',\r\n\t\taccessor: 'pf2',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\r\n\t{\r\n\t\tHeader : 'Nº de Factura',\r\n\t\tFooter : 'Nº de Factura',\r\n\t\taccessor: 'numerofactura',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Razon Social',\r\n\t\tFooter : 'Razon Social',\r\n\t\taccessor: 'razonsocial',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Ruc',\r\n\t\tFooter : 'Ruc',\r\n\t\taccessor: 'ruc',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'fecha Emision',\r\n\t\tFooter : 'fechaEmision',\r\n\t\taccessor: 'fechafactura',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Tipo Factura',\r\n\t\tFooter : 'Formadepago',\r\n\t\taccessor: 'tipoFactura',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t\r\n\t{\r\n\t\tHeader : 'Total',\r\n\t\tFooter : 'Total',\r\n\t\taccessor: 'totalFactura',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n]\r\nexport const GROUPED_COLUMNS = [\r\n\t{\r\n\t\tHeader : 'Id',\r\n\t\tFooter : 'Id',\r\n\t\taccessor: 'id'\r\n\t},\r\n\t{\r\n\t\tHeader : 'Name',\r\n\t\tFooter : 'Name',\r\n\t\tcolumns: [\r\n\t\t\t{\r\n\t\t\t\tHeader : 'First Name',\r\n\t\t\t\tFooter : 'First Name',\r\n\t\t\t\taccessor: 'first_name'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tHeader : 'Last Name',\r\n\t\t\t\tFooter : 'Last Name',\r\n\t\t\t\taccessor: 'last_name'\r\n\t\t\t},\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tHeader: 'Info',\r\n\t\tFooter: 'Info',\r\n\t\tcolumns: [\r\n\t\t\t{\r\n\t\t\t\tHeader : 'Date of Birth',\r\n\t\t\t\tFooter : 'Date of Birth',\r\n\t\t\t\taccessor: 'date_of_birth'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tHeader : 'Country',\r\n\t\t\t\tFooter : 'Country',\r\n\t\t\t\taccessor: 'country',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tHeader : 'Phone',\r\n\t\t\t\tFooter : 'Phone',\r\n\t\t\t\taccessor: 'phone'\r\n\t\t\t},\r\n\t\t]\r\n\t},\r\n]","import React from 'react';\r\n\r\nexport const GlobalFilter = ( {filter, setFilter} ) =>{\r\n\treturn(\r\n\t\t
    \r\n\t\t\tSearch : {' '}\r\n\t\t\t setFilter(e.target.value)} style={{width: \"20%\"}}\r\n />\r\n\t\t
    \r\n\t)\r\n} ","import { useCallback, useEffect, useState } from \"react\";\r\nimport { Button, Modal } from \"react-bootstrap\";\r\nimport Select from 'react-select'\r\nimport { getAllSeguros } from \"../../../../Api/Seguros\";\r\n\r\nconst ModalAgregarClientes = (props) => {\r\n const [listSeguros, setListseguros] = useState([]);\r\n const assigmentValue = useCallback(async () => {\r\n const resultUsuario = await getAllSeguros();\r\n const resultMapeado = resultUsuario.map((item) => {\r\n {\r\n return { label: item.nombre + \" \" + item.plan, value: item.nombre + \" \" + item.plan };\r\n }\r\n });\r\n setListseguros(resultMapeado);\r\n }, []);\r\n\r\n useEffect(() => {\r\n assigmentValue();\r\n }, [assigmentValue]);\r\n\r\n const { estado, onCloseModal, onReturnValue, Editdata } = props;\r\n const [formData3, setValue] = useState([]);\r\n const handleSubmit2 = (event) => {\r\n formData3.nombre = formData3.nombre ? formData3.nombre : Editdata[0].nombre\r\n formData3.razonSocial = formData3.razonSocial ? formData3.razonSocial : Editdata[0].razonsocial\r\n formData3.ruc = formData3.ruc ? formData3.ruc : Editdata[0].ruc\r\n formData3.Ciudad = formData3.ciudad ? formData3.Ciudad : Editdata[0].Ciudad\r\n formData3.direccion = formData3.direccion ? formData3.direccion : Editdata[0].direccion\r\n formData3.telefono = formData3.telefono ? formData3.telefono : Editdata[0].telefono\r\n formData3.Correo = formData3.correo ? formData3.Correo : Editdata[0].Correo\r\n formData3.nseguro = formData3.nseguro ? formData3.nseguro : Editdata[0].nseguro\r\n formData3.seguro = formData3.seguro ? formData3.seguro : Editdata[0].seguro\r\n event.preventDefault();\r\n onReturnValue(formData3);\r\n };\r\n return (\r\n <>\r\n \r\n \r\n Agregar Cliente\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({ ...formData3, nombre: e.target.value });\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({ ...formData3, razonSocial: e.target.value });\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({ ...formData3, ruc: e.target.value });\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({ ...formData3, ciudad: e.target.value });\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({ ...formData3, direccion: e.target.value });\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({ ...formData3, telefono: e.target.value });\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({ ...formData3, correo: e.target.value });\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n credito\r\n
    \r\n
    \r\n Nombre o Razon Social: {datosfactura.razonsocial}\r\n
    \r\n
    \r\n R.U.C o C.I No: {datosfactura.ruc}\r\n Direccion:{datosfactura.direccion}\r\n Tel:{datosfactura.telefono}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Venta
    \r\n\r\n
    \r\n
    \r\n
    cant.
    \r\n
    ArtCod.
    \r\n
    Descripcion
    \r\n
    P. Unitario
    \r\n
    exentas
    \r\n
    5%
    \r\n
    10%
    \r\n
    \r\n \r\n\r\n \r\n {detallefactura.map((detallefactura, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n\r\n \r\n
    {detallefactura.cantidad} {detallefactura.artcod} {detallefactura.producto} {detallefactura.precio? parseInt(detallefactura.precio).toLocaleString('es'):detallefactura.precio} {detallefactura.exenta} {detallefactura.cinco ? parseInt(detallefactura.cinco).toLocaleString('es'):detallefactura.cinco} {detallefactura.diez ? parseInt(detallefactura.diez).toLocaleString('es'):detallefactura.diez}
    \r\n\r\n
    \r\n\r\n
    Sub Total
    \r\n
    \r\n
    {datosfactura.Subtotal5 ? parseInt(datosfactura.Subtotal5).toLocaleString('es'):datosfactura.Subtotal5}
    \r\n
    {datosfactura.Subtotal10 ? parseInt(datosfactura.Subtotal10).toLocaleString('es'):datosfactura.Subtotal10}
    \r\n\r\n\r\n
    \r\n
    \r\n
    Total a pagar(en letas) {numberToTextss.NumerosALetras(datosfactura.totalFactura)} Guaranies---------
    \r\n
    {parseInt(datosfactura.totalFactura).toLocaleString('es')}
    \r\n
    \r\n
    \r\n
    \r\n
    LIQUIDACIOON DEL IVA (5%) {datosfactura.gravado05?parseInt(datosfactura.gravado05).toLocaleString('es'):datosfactura.gravado05}
    \r\n
    (10%) {datosfactura.gravado10?parseInt(datosfactura.gravado10).toLocaleString('es'):datosfactura.gravado10}
    \r\n
    Total Iva: {datosfactura.ivamonto?parseInt(datosfactura.ivamonto).toLocaleString('es'):datosfactura.ivamonto}
    \r\n\r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Datos Extras

    \r\n {userData.IdTipoUsuario === 1 && (\r\n\r\n \r\n \r\n Opciones\r\n \r\n\r\n \r\n\r\n Anular\r\n Depositar\r\n Recibo\r\n Fecha Vencimiento\r\n Imprimir\r\n \r\n Descargar PDF\r\n \r\n \r\n \r\n\r\n\r\n )}\r\n {reducer.isShow && (\r\n \r\n )}\r\n {reducer.isShow2 && (\r\n \r\n )}\r\n\r\n
    \r\n
    \r\n Forma de Pago: {datosfactura.formadepago}\r\n

    \r\n \r\n Numero de Comprobante : {Ncomprobante.current}\r\n \r\n

    \r\n \r\n Tipo de Factura : {datosfactura.tipoFactura}\r\n \r\n\r\n {datosfactura.tipoFactura ===\"Credito\" &&\r\n \r\n

    \r\n Recibo : {datosfactura.recibocredito}\r\n
    }\r\n

    \r\n Fecha Vencimiento : {datosfactura.fechapagovencimiento} \r\n

    \r\n Obs : {datosfactura.obs} \r\n

    \r\n {FacAnulado.current == \"ANULADO\" &&\r\n \r\n Motivo de anulacion : {datosfactura.motivoanulacion}\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    datos extra Detalle factura

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {detallefactura.map((items3, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    Producto/ServicioPrecioPrecio Des.Monto Des.des %
    {items3.producto}{items3.preciosindescuento ? parseInt(items3.preciosindescuento).toLocaleString('es'):items3.preciosindescuento}{items3.precio ? parseInt(items3.precio).toLocaleString('es'):items3.precio}{items3.montodescuento ? parseInt(items3.montodescuento).toLocaleString('es'):items3.montodescuento }{items3.descuento}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n\r\n \r\n );\r\n\r\n })}\r\n\r\n\r\n \r\n )\r\n}\r\nexport default FichaFactura;","\r\nimport { jsPDF } from \"jspdf\";\r\nimport fondoenfermeria from \"./Enfermería en tu Hogar S.A..jpg\"\r\nexport default function genPDF({ datosfactura, detallefactura, isCredito, TextoNumber, sum1, sum2 }) {\r\n const doc = new jsPDF({\r\n unit: 'px',\r\n format: 'A6'\r\n });\r\n doc.addImage(`${fondoenfermeria}`, \"jpg\", 0, 0, 223, 318);\r\n if (datosfactura.direccion == null) {\r\n datosfactura.direccion = \"\"\r\n }\r\n if (datosfactura.telefono == null) {\r\n datosfactura.telefono = \"\"\r\n }\r\n datosfactura.iva5 = datosfactura.iva5 ? datosfactura.iva5 : datosfactura.gravado05\r\n datosfactura.iva10 = datosfactura.iva10 ? datosfactura.iva10 : datosfactura.gravado10\r\n datosfactura.totalmonto = datosfactura.totalmonto ? datosfactura.totalmonto : datosfactura.totalFactura\r\n datosfactura.ivatotal = datosfactura.ivatotal ? datosfactura.ivatotal : Number(datosfactura.gravado05 + datosfactura.gravado10)\r\n datosfactura.Subtotal5 = datosfactura.Subtotal5 ? datosfactura.Subtotal5 : sum1\r\n datosfactura.Subtotal10 = datosfactura.Subtotal10 ? datosfactura.Subtotal10 : sum2\r\n datosfactura.fechafactura = datosfactura.fechafactura ? datosfactura.fechafactura : new Date().toLocaleDateString()\r\n const writePage = (offsetX = 0) => {\r\n \r\n /* Separacion entre item del listado*/\r\n let gapRow = 20;\r\n\r\n /* Cambiar segun booleano para saber si es Contado o Credito */\r\n let isContado = isCredito\r\n let casillaX = offsetX + 188 + (isContado ? 20 : 0);\r\n\r\n doc.setFont(undefined, 'bold')\r\n doc.setFontSize(8)\r\n /* Casilla */\r\n doc.text(\"X\", casillaX + 3, 34)\r\n /*timbrado*/\r\n doc.setFontSize(7)\r\n doc.text(`Timbrado:${datosfactura.timbrado}`, 122, 8)\r\n /*numero de factura*/\r\n doc.setFontSize(8)\r\n doc.text(`00${datosfactura.pf1}-00${datosfactura.pf2}-${datosfactura.numerofactura}`, 150, 25)\r\n doc.setFontSize(6)\r\n doc.setFont(undefined, 'normal')\r\n\r\n /* Fecha de emision */\r\n doc.text(datosfactura.fechafactura, offsetX + 35, 34)\r\n\r\n /* Razon Social */\r\n\r\n doc.text(datosfactura.razonsocial, offsetX + 44, 41)\r\n\r\n /* RUC / CI */\r\n doc.text(datosfactura.ruc, offsetX + 32, 47)\r\n\r\n /* Direccion */\r\n doc.setFontSize(5)\r\n doc.text(datosfactura.direccion, offsetX + 93, 47)\r\n doc.setFontSize(8)\r\n /*tel*/\r\n doc.setFontSize(5)\r\n doc.text(datosfactura.telefono, offsetX + 183, 47)\r\n doc.setFontSize(8)\r\n /*Bucle para iterar lista de productos */\r\n for (const [index, obj] of detallefactura.entries()) {\r\n addRow(obj, offsetX - 3, 65 + (index * gapRow))\r\n }\r\n\r\n /* Subtotal 5 */\r\n doc.text(String(Math.round(datosfactura.Subtotal5)), offsetX + 230, 406 + 1)\r\n\r\n /* Subtotal 10 */\r\n doc.text(String(Math.round(datosfactura.Subtotal10)), offsetX + 270, 406 + 1)\r\n\r\n /* Total a pagar en letras */\r\n doc.setFontSize(6)\r\n doc.text(TextoNumber, offsetX + 44, 294,\r\n { maxWidth: 130 })\r\n /* Total a pagar en numeros */\r\n doc.setFontSize(7)\r\n doc.text(parseInt(datosfactura.totalmonto).toLocaleString('es'), offsetX + 186, 297)\r\n\r\n /* Total iva5 */\r\n doc.text(parseInt(datosfactura.iva5).toLocaleString('es'), offsetX + 65, 306)\r\n\r\n /* Total iva10 */\r\n doc.text(parseInt(datosfactura.iva10).toLocaleString('es'), offsetX + 114, 306)\r\n\r\n /* Total Total iva */\r\n doc.text(parseInt(datosfactura.ivatotal).toLocaleString('es'), offsetX + 168, 306)\r\n }\r\n\r\n /* Funcion que añade filas a al listado pdf */\r\n const addRow = (data, x = 0, y) => {\r\n doc.setFontSize(6)\r\n doc.text(String(data.cantidad), x + 10, y)\r\n doc.text(String(data.artcod), x + 23, y)\r\n doc.setFontSize(7)\r\n doc.text(data.producto, x + 44, y,\r\n {\r\n maxWidth: 70,\r\n }\r\n )\r\n doc.text(parseInt(data.precio).toLocaleString('es'), x + 118, y)\r\n doc.text(String(data.exenta), x + 125, y)\r\n doc.text(parseInt(data.cinco).toLocaleString('es'), x + 163, y)\r\n doc.text(parseInt(data.diez).toLocaleString('es'), x + 190, y)\r\n\r\n }\r\n\r\n\r\n\r\n writePage()\r\n /*doc.save()*/\r\n doc.setProperties({\r\n title: `00${datosfactura.pf1}-00${datosfactura.pf2}-${datosfactura.numerofactura}`\r\n });\r\n doc.save(`00${datosfactura.pf1}-00${datosfactura.pf2}-${datosfactura.numerofactura}`);\r\n}\r\n","import { useCallback, useEffect, useReducer, useState ,Fragment,useRef} from \"react\";\r\nimport {getAllFacturasCreditoNodepositados,updateFactura} from '../../../Api/facturacion'\r\nimport { DownloadTableExcel } from 'react-export-table-to-excel';\r\nimport {\r\n Col,\r\n Card,\r\n Table,\r\n Button\r\n } from \"react-bootstrap\";\r\nimport ModalDepositar from \"../facturascontado/ModalDepositar/ModalDepositar\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { TailSpin } from 'react-loader-spinner'\r\nimport { getAllFormaPago } from \"../../../Api/formaPago\"\r\nimport Swal from 'sweetalert2'\r\nconst showReducer = (curShow, state) => {\r\n switch (state.type) {\r\n case \"SHOW\":\r\n return {\r\n isShow: true,\r\n onReturnValue: state.onReturnValue,\r\n ListFDP: state.ListFDP,\r\n };\r\n case \"SHOW2\":\r\n return {\r\n isShow: false,\r\n isShow2: true,\r\n onReturnValue: state.onReturnValue,\r\n };\r\n case \"END\":\r\n return { ...curShow, isShow: false, isShow2: false };\r\n\r\n }\r\n};\r\nconst Vencimiento = () => {\r\n const VenColor=useRef(false);\r\n const [listFormadepago, setListFormadepago] = useState([]);\r\n const [userinfo, setUserInfo] = useState({\r\n idFac: [],\r\n response: [],\r\n });\r\n const [loading, setLoading] = useState(true);\r\n const [data, setdata] = useState([]);\r\n const chackbox = document.querySelectorAll(\".bs_exam_topper input\");\r\n const motherChackBox = document.querySelector(\".bs_exam_topper_all input\");\r\n const handleChange = (e) => {\r\n // Destructuring\r\n const { value, checked } = e.target;\r\n const { idFac } = userinfo;\r\n // Case 1 : The user checks the box\r\n if (checked) {\r\n setUserInfo({\r\n idFac: [...idFac, value],\r\n response: [...idFac, value],\r\n });\r\n }\r\n \r\n // Case 2 : The user unchecks the box\r\n else {\r\n setUserInfo({\r\n idFac: idFac.filter((e) => e !== value),\r\n response: idFac.filter((e) => e !== value),\r\n });\r\n }\r\n };\r\n \r\n const [reducer, dispatchReducer] = useReducer(showReducer, {\r\n isShow: false,\r\n isShow2:false,\r\n ListFDP: null,\r\n onReturnValue: null,\r\n });\r\n const Depositar = () => {\r\n \r\n dispatchReducer({\r\n type: \"SHOW\",\r\n });\r\n };\r\n const onCloseModal = () => {\r\n dispatchReducer({ type: \"END\" });\r\n };\r\n const assigmentValue = useCallback(async () => {\r\n try {\r\n \r\n const result = await getAllFacturasCreditoNodepositados();\r\n const listResut3 = await getAllFormaPago()\r\n const resultMapeado = listResut3.map((item) => {\r\n return { label: item.nombre, value: item.nombre };\r\n });\r\n let resulting = resultMapeado.filter(item => item.label!=\"Efectivo\")\r\n setListFormadepago(resulting);\r\n setdata(result);\r\n setLoading(false);\r\n } catch (err) {\r\n console.log(err);\r\n setLoading(false);\r\n }\r\n });\r\n useEffect(() => {\r\n assigmentValue();\r\n }, []);\r\n const tableRef = useRef(null);\r\n function unCheck() {\r\n var x = document.getElementsByClassName(\"form-check-input\");\r\n for(let i=0; i {\r\n \r\n try {\r\n Swal.fire({\r\n title: 'Favor Aguarde',\r\n html: 'Actualizando datos',// add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n });\r\n for (let i = 0; i < userinfo.idFac.length; i++) {\r\n \r\n data1.idFactura=userinfo.idFac[i]\r\n data2.idFactura=userinfo.idFac[i]\r\n const result = await updateFactura(data1);\r\n const result2 = await updateFactura(data2);\r\n }\r\n const result3 = await getAllFacturasCreditoNodepositados();\r\n setdata(result3);\r\n dispatchReducer({ type: \"END\" });\r\n unCheck();\r\n Swal.close();\r\n \r\n \r\n } catch (err) {\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Oops...\",\r\n text: `${err}`,\r\n });\r\n }\r\n \r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Facturas Credito no Pagadas
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data.map((data, index) => {\r\n if (data.fechapagovencimiento>new Date())\r\n {\r\n VenColor.current=false\r\n }else\r\n {\r\n VenColor.current=true\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n
    \r\n \r\n \r\n ID Factura\r\n \r\n Factura\r\n \r\n Ruc\r\n \r\n Razon Social\r\n \r\n Monto\r\n \r\n Vencimiento\r\n \r\n Fecha\r\n \r\n Ver Factura\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    {data.idFactura} {data.pf1}-{data.pf2}-{data.numerofactura}{data.ruc}{data.razonsocial} {data.totalFactura} {data.fechapagovencimiento} {data.fechafactura}\r\n Ver Factura
    \r\n
    \r\n
    \r\n \r\n {reducer.isShow && (\r\n \r\n )} \r\n
    \r\n )\r\n}\r\nexport default Vencimiento;","import React from 'react';\r\n\r\nexport const ColumnFilter = ( { column } ) => {\r\n\t\r\n\tconst {filterValue, setFilter} = column\r\n\treturn(\r\n\t\t
    \r\n\t\t\r\n\t\t\t setFilter(e.target.value)} />\r\n\t\t
    \r\n\t)\r\n} ","import {format} from 'date-fns';\r\nimport { ColumnFilter } from './ColumnFilter';\r\nexport const COLUMNS = [\r\n\t{\r\n\t\tHeader : 'Id',\r\n\t\tFooter : 'Id',\r\n\t\taccessor: 'idFactura',\r\n\t\tFilter: ColumnFilter,\r\n\t\t//disableFilters: true,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Pf1',\r\n\t\tFooter : 'Nombre',\r\n\t\taccessor: 'pf1',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Pf2',\r\n\t\tFooter : 'Ruc',\r\n\t\taccessor: 'pf2',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t\r\n\t{\r\n\t\tHeader : 'N Factura',\r\n\t\tFooter : 'Razon Social',\r\n\t\taccessor: 'numerofactura',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Total',\r\n\t\taccessor: 'totalFactura',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Fecha Emision',\r\n\t\taccessor: 'fechafactura',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Forma de pago',\r\n\t\taccessor: 'formadepago',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'N de comprobante',\r\n\t\t\r\n\t\taccessor: 'numerodecomprobante',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n]\r\n\r\nexport const GROUPED_COLUMNS = [\r\n\t{\r\n\t\tHeader : 'Id',\r\n\t\tFooter : 'Id',\r\n\t\taccessor: 'id'\r\n\t},\r\n\t{\r\n\t\tHeader : 'Name',\r\n\t\tFooter : 'Name',\r\n\t\tcolumns: [\r\n\t\t\t{\r\n\t\t\t\tHeader : 'First Name',\r\n\t\t\t\tFooter : 'First Name',\r\n\t\t\t\taccessor: 'first_name'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tHeader : 'Last Name',\r\n\t\t\t\tFooter : 'Last Name',\r\n\t\t\t\taccessor: 'last_name'\r\n\t\t\t},\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tHeader: 'Info',\r\n\t\tFooter: 'Info',\r\n\t\tcolumns: [\r\n\t\t\t{\r\n\t\t\t\tHeader : 'Date of Birth',\r\n\t\t\t\tFooter : 'Date of Birth',\r\n\t\t\t\taccessor: 'date_of_birth'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tHeader : 'Country',\r\n\t\t\t\tFooter : 'Country',\r\n\t\t\t\taccessor: 'country',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tHeader : 'Phone',\r\n\t\t\t\tFooter : 'Phone',\r\n\t\t\t\taccessor: 'phone'\r\n\t\t\t},\r\n\t\t]\r\n\t},\r\n]","import React from 'react';\r\n\r\nexport const GlobalFilter = ( {filter, setFilter} ) =>{\r\n\treturn(\r\n\t\t
    \r\n\t\t\tSearch : {' '}\r\n\t\t\t setFilter(e.target.value)} style={{width: \"20%\"}}\r\n />\r\n\t\t
    \r\n\t)\r\n} ","import React, { Fragment,useCallback,useEffect,useState,useMemo,useRef} from \"react\";\r\n import {Link} from \"react-router-dom\";\r\n import { Row,Col, Card,Button,} from \"react-bootstrap\";\r\n import { useTable, useGlobalFilter, useFilters, usePagination } from 'react-table';\r\n import { COLUMNS } from './Columns';\r\n import { GlobalFilter } from './GlobalFilter';\r\n import './filtering.css';\r\n import {getAllfacturasCreditoPagados} from '../../../Api/facturacion'\r\n import {getAllFormaPago} from '../../../Api/formaPago'\r\n import Select from \"react-select\";\r\n import { DownloadTableExcel } from 'react-export-table-to-excel';\r\n import { TailSpin } from 'react-loader-spinner'\r\n const Cobranzas = () => {\r\n const [loading, setLoading] = useState(true);\r\n const [filterData, setValue] = useState([]);\r\n const [data, setdata] = useState([]);\r\n const [FDP,setFDP]= useState([]);\r\n const columns = useMemo( () => COLUMNS, [] )\r\n const assigmentValue = useCallback(async () => {\r\n try {\r\n const producto = {\r\n fechaincial: '1991-01-01',\r\n fechafinal: '1991-01-01',\r\n formadepago:'TODOS'\r\n }\r\n\r\n const result = await getAllfacturasCreditoPagados(producto);\r\n \r\n const result2 = await getAllFormaPago();\r\n const resultMapeado = result2.map((item) => {\r\n return { label: item.nombre, value: item.nombre };\r\n });\r\n setdata([...result]);\r\n setFDP([...resultMapeado,{value:'TODOS',label:'Todos'}])\r\n setValue({\r\n fechaincial : '1991-01-01',\r\n fechafinal: '1991-01-01'\r\n }\r\n )\r\n setLoading(false);\r\n } catch (err) {\r\n console.log(err);\r\n setLoading(false);\r\n }\r\n });\r\n useEffect(() => {\r\n assigmentValue();\r\n }, []);\r\n\r\n const Filtrar = useCallback(async () => {\r\n try {\r\n \r\n const result = await getAllfacturasCreditoPagados(filterData);\r\n \r\n setdata([...result]);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n });\r\n \r\n \r\n \r\n const tableInstance = useTable({\r\n columns,\r\n data,\t\r\n initialState : {pageIndex : 0}\r\n }, useFilters, useGlobalFilter, usePagination)\r\n \r\n const { \r\n getTableProps, \r\n getTableBodyProps, \r\n headerGroups, \r\n prepareRow,\r\n state,\r\n page,\r\n gotoPage,\r\n pageCount,\r\n pageOptions,\r\n nextPage,\r\n previousPage,\r\n canNextPage,\r\n canPreviousPage,\r\n setGlobalFilter,\r\n } = tableInstance\r\n \r\n \r\n const {globalFilter, pageIndex} = state\r\n \r\n const tableRef = useRef(null);\r\n \r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Facturas Credito Pagados\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Filtros\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n {\r\n setValue({\r\n ...filterData,\r\n fechaincial: e.target.value,\r\n });\r\n }}\r\n \r\n \r\n\r\n />\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n {\r\n setValue({\r\n ...filterData,\r\n fechafinal: e.target.value,\r\n });\r\n }}\r\n \r\n\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n {\r\n setValue({\r\n ...filterData,\r\n formadepago: e.value,\r\n });\r\n }}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n\r\n \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n

    \r\n \r\n \r\n \r\n {headerGroups.map(headerGroup => (\r\n \r\n {headerGroup.headers.map(column => (\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {page.map((row) => {\r\n prepareRow(row)\r\n return(\r\n \r\n {row.cells.map((cell) => {\r\n return \r\n })}\r\n \r\n )\r\n })}\r\n \r\n
    \r\n {column.render('Header')}\r\n {column.canFilter ? column.render('Filter') : null}\r\n
    {cell.render('Cell')}
    \r\n
    \r\n \r\n Page{' '}\r\n \r\n {pageIndex + 1} of {pageOptions.length}\r\n {''}\r\n \r\n \r\n Go to page : {' '}\r\n { \r\n const pageNumber = e.target.value ? Number(e.target.value) - 1 : 0 \r\n gotoPage(pageNumber)\r\n } } \r\n />\r\n \r\n
    \r\n
    \t\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n )\r\n }\r\n export default Cobranzas;","import classNames from 'classnames';\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n /**\n * Specify whether the feedback is for valid or invalid fields\n *\n * @type {('valid'|'invalid')}\n */\n type: PropTypes.string,\n /** Display feedback as a tooltip. */\n tooltip: PropTypes.bool,\n as: PropTypes.elementType\n};\nconst Feedback = /*#__PURE__*/React.forwardRef(\n// Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n as: Component = 'div',\n className,\n type = 'valid',\n tooltip = false,\n ...props\n}, ref) => /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, `${type}-${tooltip ? 'tooltip' : 'feedback'}`)\n}));\nFeedback.displayName = 'Feedback';\nFeedback.propTypes = propTypes;\nexport default Feedback;","\"use client\";\n\nimport * as React from 'react';\n\n// TODO\n\nconst FormContext = /*#__PURE__*/React.createContext({});\nexport default FormContext;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckInput = /*#__PURE__*/React.forwardRef(({\n id,\n bsPrefix,\n className,\n type = 'checkbox',\n isValid = false,\n isInvalid = false,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'input',\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-input');\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n type: type,\n id: id || controlId,\n className: classNames(className, bsPrefix, isValid && 'is-valid', isInvalid && 'is-invalid')\n });\n});\nFormCheckInput.displayName = 'FormCheckInput';\nexport default FormCheckInput;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckLabel = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n htmlFor,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-label');\n return /*#__PURE__*/_jsx(\"label\", {\n ...props,\n ref: ref,\n htmlFor: htmlFor || controlId,\n className: classNames(className, bsPrefix)\n });\n});\nFormCheckLabel.displayName = 'FormCheckLabel';\nexport default FormCheckLabel;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport Feedback from './Feedback';\nimport FormCheckInput from './FormCheckInput';\nimport FormCheckLabel from './FormCheckLabel';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { hasChildOfType } from './ElementChildren';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FormCheck = /*#__PURE__*/React.forwardRef(({\n id,\n bsPrefix,\n bsSwitchPrefix,\n inline = false,\n reverse = false,\n disabled = false,\n isValid = false,\n isInvalid = false,\n feedbackTooltip = false,\n feedback,\n feedbackType,\n className,\n style,\n title = '',\n type = 'checkbox',\n label,\n children,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as = 'input',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check');\n bsSwitchPrefix = useBootstrapPrefix(bsSwitchPrefix, 'form-switch');\n const {\n controlId\n } = useContext(FormContext);\n const innerFormContext = useMemo(() => ({\n controlId: id || controlId\n }), [controlId, id]);\n const hasLabel = !children && label != null && label !== false || hasChildOfType(children, FormCheckLabel);\n const input = /*#__PURE__*/_jsx(FormCheckInput, {\n ...props,\n type: type === 'switch' ? 'checkbox' : type,\n ref: ref,\n isValid: isValid,\n isInvalid: isInvalid,\n disabled: disabled,\n as: as\n });\n return /*#__PURE__*/_jsx(FormContext.Provider, {\n value: innerFormContext,\n children: /*#__PURE__*/_jsx(\"div\", {\n style: style,\n className: classNames(className, hasLabel && bsPrefix, inline && `${bsPrefix}-inline`, reverse && `${bsPrefix}-reverse`, type === 'switch' && bsSwitchPrefix),\n children: children || /*#__PURE__*/_jsxs(_Fragment, {\n children: [input, hasLabel && /*#__PURE__*/_jsx(FormCheckLabel, {\n title: title,\n children: label\n }), feedback && /*#__PURE__*/_jsx(Feedback, {\n type: feedbackType,\n tooltip: feedbackTooltip,\n children: feedback\n })]\n })\n })\n });\n});\nFormCheck.displayName = 'FormCheck';\nexport default Object.assign(FormCheck, {\n Input: FormCheckInput,\n Label: FormCheckLabel\n});","import * as React from 'react';\n\n/**\n * Iterates through children that are typically specified as `props.children`,\n * but only maps over children that are \"valid elements\".\n *\n * The mapFunction provided index will be normalised to the components mapped,\n * so an invalid component would not increase the index.\n *\n */\nfunction map(children, func) {\n let index = 0;\n return React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) ? func(child, index++) : child);\n}\n\n/**\n * Iterates through children that are \"valid elements\".\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child with the index reflecting the position relative to \"valid components\".\n */\nfunction forEach(children, func) {\n let index = 0;\n React.Children.forEach(children, child => {\n if ( /*#__PURE__*/React.isValidElement(child)) func(child, index++);\n });\n}\n\n/**\n * Finds whether a component's `children` prop includes a React element of the\n * specified type.\n */\nfunction hasChildOfType(children, type) {\n return React.Children.toArray(children).some(child => /*#__PURE__*/React.isValidElement(child) && child.type === type);\n}\nexport { map, forEach, hasChildOfType };","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport warning from 'warning';\nimport Feedback from './Feedback';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormControl = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n type,\n size,\n htmlSize,\n id,\n className,\n isValid = false,\n isInvalid = false,\n plaintext,\n readOnly,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'input',\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-control');\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !id, '`controlId` is ignored on `` when `id` is specified.') : void 0;\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n type: type,\n size: htmlSize,\n ref: ref,\n readOnly: readOnly,\n id: id || controlId,\n className: classNames(className, plaintext ? `${bsPrefix}-plaintext` : bsPrefix, size && `${bsPrefix}-${size}`, type === 'color' && `${bsPrefix}-color`, isValid && 'is-valid', isInvalid && 'is-invalid')\n });\n});\nFormControl.displayName = 'FormControl';\nexport default Object.assign(FormControl, {\n Feedback\n});","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormFloating = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-floating');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nFormFloating.displayName = 'FormFloating';\nexport default FormFloating;","import * as React from 'react';\nimport { useMemo } from 'react';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormGroup = /*#__PURE__*/React.forwardRef(({\n controlId,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const context = useMemo(() => ({\n controlId\n }), [controlId]);\n return /*#__PURE__*/_jsx(FormContext.Provider, {\n value: context,\n children: /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref\n })\n });\n});\nFormGroup.displayName = 'FormGroup';\nexport default FormGroup;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport warning from 'warning';\nimport Col from './Col';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormLabel = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'label',\n bsPrefix,\n column = false,\n visuallyHidden = false,\n className,\n htmlFor,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-label');\n let columnClass = 'col-form-label';\n if (typeof column === 'string') columnClass = `${columnClass} ${columnClass}-${column}`;\n const classes = classNames(className, bsPrefix, visuallyHidden && 'visually-hidden', column && columnClass);\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !htmlFor, '`controlId` is ignored on `` when `htmlFor` is specified.') : void 0;\n htmlFor = htmlFor || controlId;\n if (column) return /*#__PURE__*/_jsx(Col, {\n ref: ref,\n as: \"label\",\n className: classes,\n htmlFor: htmlFor,\n ...props\n });\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-for, jsx-a11y/label-has-associated-control\n _jsx(Component, {\n ref: ref,\n className: classes,\n htmlFor: htmlFor,\n ...props\n })\n );\n});\nFormLabel.displayName = 'FormLabel';\nexport default FormLabel;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormRange = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n id,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-range');\n return /*#__PURE__*/_jsx(\"input\", {\n ...props,\n type: \"range\",\n ref: ref,\n className: classNames(className, bsPrefix),\n id: id || controlId\n });\n});\nFormRange.displayName = 'FormRange';\nexport default FormRange;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormSelect = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n size,\n htmlSize,\n className,\n isValid = false,\n isInvalid = false,\n id,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-select');\n return /*#__PURE__*/_jsx(\"select\", {\n ...props,\n size: htmlSize,\n ref: ref,\n className: classNames(className, bsPrefix, size && `${bsPrefix}-${size}`, isValid && `is-valid`, isInvalid && `is-invalid`),\n id: id || controlId\n });\n});\nFormSelect.displayName = 'FormSelect';\nexport default FormSelect;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormText = /*#__PURE__*/React.forwardRef(\n// Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n bsPrefix,\n className,\n as: Component = 'small',\n muted,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-text');\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, bsPrefix, muted && 'text-muted')\n });\n});\nFormText.displayName = 'FormText';\nexport default FormText;","import * as React from 'react';\nimport FormCheck from './FormCheck';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Switch = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(FormCheck, {\n ...props,\n ref: ref,\n type: \"switch\"\n}));\nSwitch.displayName = 'Switch';\nexport default Object.assign(Switch, {\n Input: FormCheck.Input,\n Label: FormCheck.Label\n});","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport FormGroup from './FormGroup';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FloatingLabel = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n children,\n controlId,\n label,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-floating');\n return /*#__PURE__*/_jsxs(FormGroup, {\n ref: ref,\n className: classNames(className, bsPrefix),\n controlId: controlId,\n ...props,\n children: [children, /*#__PURE__*/_jsx(\"label\", {\n htmlFor: controlId,\n children: label\n })]\n });\n});\nFloatingLabel.displayName = 'FloatingLabel';\nexport default FloatingLabel;","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport FormCheck from './FormCheck';\nimport FormControl from './FormControl';\nimport FormFloating from './FormFloating';\nimport FormGroup from './FormGroup';\nimport FormLabel from './FormLabel';\nimport FormRange from './FormRange';\nimport FormSelect from './FormSelect';\nimport FormText from './FormText';\nimport Switch from './Switch';\nimport FloatingLabel from './FloatingLabel';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n /**\n * The Form `ref` will be forwarded to the underlying element,\n * which means, unless it's rendered `as` a composite component,\n * it will be a DOM node, when resolved.\n *\n * @type {ReactRef}\n * @alias ref\n */\n _ref: PropTypes.any,\n /**\n * Mark a form as having been validated. Setting it to `true` will\n * toggle any validation styles on the forms elements.\n */\n validated: PropTypes.bool,\n as: PropTypes.elementType\n};\nconst Form = /*#__PURE__*/React.forwardRef(({\n className,\n validated,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'form',\n ...props\n}, ref) => /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, validated && 'was-validated')\n}));\nForm.displayName = 'Form';\nForm.propTypes = propTypes;\nexport default Object.assign(Form, {\n Group: FormGroup,\n Control: FormControl,\n Floating: FormFloating,\n Check: FormCheck,\n Switch,\n Label: FormLabel,\n Text: FormText,\n Range: FormRange,\n Select: FormSelect,\n FloatingLabel\n});","import Button from \"react-bootstrap/Button\";\r\nimport Select from \"react-select\";\r\nconst handleKeyPress = (e) => {\r\n if (e.charCode === 45 || e.charCode === 46) {\r\n return e.preventDefault()\r\n }\r\n };\r\nfunction TableRows({rowsData, deleteTableRows, handleChange,handleChange2,listcostos,handleChangeSelect}) {\r\n \r\n return(\r\n \r\n rowsData.map((data, index)=>{\r\n const {Descuento,precio,iva,total}= data;\r\n \r\n return(\r\n <>\r\n \r\n \r\n (handleChange2(index, evnt))} name=\"descuento\" className=\"form-control\"/> \r\n (handleChange(index, evnt))} name=\"cantidad\" className=\"form-control\"/> \r\n (handleChangeSelect(index, evnt,'producto'))} \r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n \r\n )\r\n \r\n}\r\nexport default TableRows;","\r\nimport { useState } from \"react\";\r\nimport { Button, Modal } from \"react-bootstrap\";\r\nimport genPDF from \"./pdfWriter\"\r\nvar myStyle = {\r\n borderRight: '1px solid #222',\r\n width: '50%',\r\n height: '8%',\r\n}\r\nvar myStyle2 = {\r\n borderTop: '1px solid #222',\r\n\r\n height: '8%',\r\n}\r\nvar myStyle3 = {\r\n borderTop: '1px solid #222',\r\n\r\n height: '68%',\r\n}\r\n\r\nvar myStyle5 = {\r\n borderTop: '1px solid #222',\r\n height: '4%',\r\n}\r\nvar myStyle6 = {\r\n\r\n\r\n height: '4%',\r\n}\r\nvar myStyle7 = {\r\n borderTop: '1px solid #222',\r\n\r\n height: '2%',\r\n}\r\nvar myStyleex = {\r\n borderTop: '1px solid #222',\r\n\r\n height: '2%',\r\n}\r\nvar myStyleex2 = {\r\n borderTop: '1px solid #222',\r\n\r\n height: '2%',\r\n}\r\nvar myStylh1 = {\r\n borderRight: '1px solid #222',\r\n width: '6%',\r\n fontSize: 8\r\n}\r\nvar myStylh2 = {\r\n borderRight: '1px solid #222',\r\n width: '8%',\r\n fontSize: 8\r\n}\r\nvar myStylh3 = {\r\n borderRight: '1px solid #222',\r\n width: '40%',\r\n fontSize: 8\r\n}\r\nvar myStylh4 = {\r\n borderRight: '1px solid #222',\r\n width: '10%',\r\n fontSize: 8\r\n}\r\nvar myStylh5 = {\r\n borderRight: '1px solid #222',\r\n width: '7%',\r\n fontSize: 8\r\n}\r\nvar myStylh6 = {\r\n borderRight: '1px solid #222',\r\n width: '14%',\r\n fontSize: 8\r\n}\r\nvar myStylh7 = {\r\n\r\n width: '14%',\r\n fontSize: 8\r\n}\r\nvar myStyleventa = {\r\n borderRight: '1px solid #222',\r\n width: '64%',\r\n fontSize: 8\r\n}\r\nvar myStyleventa2 = {\r\n\r\n width: '37%',\r\n fontSize: 8\r\n}\r\nvar myStylSubtotal = {\r\n borderRight: '1px solid #222',\r\n width: '64%',\r\n fontSize: 8\r\n}\r\nvar myStylSubtotal2 = {\r\n borderRight: '1px solid #222',\r\n width: '8%',\r\n fontSize: 8\r\n}\r\nvar myStylSubtotal3 = {\r\n borderRight: '1px solid #222',\r\n width: '14%',\r\n fontSize: 8\r\n}\r\nvar myStylSubtotal4 = {\r\n\r\n width: '14%',\r\n fontSize: 8\r\n}\r\nvar myStyltotal = {\r\n borderRight: '1px solid #222',\r\n width: '86%',\r\n fontSize: 8\r\n}\r\nvar myStyltotal2 = {\r\n\r\n width: '14%',\r\n fontSize: 12\r\n}\r\nvar myStylh11 = {\r\n \r\n width: '30px',\r\n fontSize: 12\r\n}\r\nvar myStylh12 = {\r\n \r\n width: '39px',\r\n fontSize: 12\r\n}\r\nvar myStylh13 = {\r\n \r\n width: '184px',\r\n fontSize: 12\r\n}\r\nvar myStylh14 = {\r\n \r\n width: '48px',\r\n fontSize: 12\r\n}\r\nvar myStylh15 = {\r\n \r\n width: '36px',\r\n fontSize: 12\r\n}\r\nvar myStylh16 = {\r\n \r\n width: '66px',\r\n fontSize: 12\r\n}\r\nvar myStylh17 = {\r\n width: '66px',\r\n fontSize: 12\r\n}\r\nconst ModalPreview = (props) => {\r\n const { estado, onCloseModal, onReturnValue2, datosfactura, detallefactura,credito,contado } = props;\r\n const numberToTextss = require('./TextoNumero')\r\n const [not,SetNot]=useState(false)\r\n const handleclick = () => {\r\n SetNot(true)\r\n let isCredito=false\r\n if (credito) isCredito=credito\r\n let TextoNumber= numberToTextss.NumerosALetras(datosfactura.totalmonto)+\" \"+\"Guaranies--\"\r\n onReturnValue2({datosfactura,detallefactura,isCredito,TextoNumber});\r\n };\r\n \r\n return (\r\n <>\r\n \r\n \r\n Preview\r\n \r\n \r\n
    \r\n
    \r\n Timbrado: {datosfactura.timbrado} \r\n

    \r\n Numero Factura: {datosfactura.pf1}-{datosfactura.pf2}-{datosfactura.numeroActual.current} \r\n
    \r\n
    \r\n
    \r\n Fecha Emision: {new Date().toLocaleDateString()} \r\n Cond. de venta: contado credito\r\n
    \r\n
    \r\n Nombre o Razon Social: {datosfactura.razonsocial}\r\n
    \r\n
    \r\n R.U.C o C.I No: {datosfactura.ruc}\r\n Direccion:{datosfactura.direccion}\r\n Tel:{datosfactura.telefono}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Venta
    \r\n\r\n
    \r\n
    \r\n
    cant.
    \r\n
    ArtCod.
    \r\n
    Descripcion
    \r\n
    P. Unitario
    \r\n
    exentas
    \r\n
    5%
    \r\n
    10%
    \r\n
    \r\n \r\n \r\n {detallefactura.map((detallefactura,index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n\r\n \r\n
    {detallefactura.cantidad} {detallefactura.artcod} {detallefactura.producto} {detallefactura.precio} {detallefactura.exenta} {Math.round(detallefactura.cinco)} {Math.round(detallefactura.diez)}
    \r\n\r\n
    \r\n\r\n
    Sub Total
    \r\n
    \r\n
    {datosfactura.Subtotal5}
    \r\n
    {datosfactura.Subtotal10}
    \r\n
    \r\n
    \r\n
    Total a pagar(en letas) {numberToTextss.NumerosALetras(datosfactura.totalmonto)} Guaranies---------
    \r\n
    {datosfactura.totalmonto}
    \r\n
    \r\n
    \r\n
    \r\n
    LIQUIDACIOON DEL IVA (5%) {datosfactura.iva5}
    \r\n
    (10%) {datosfactura.iva10}
    \r\n
    Total Iva: {datosfactura.ivatotal}
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ModalPreview;\r\n\r\n","import React, {\r\n useCallback,\r\n useEffect,\r\n useReducer,\r\n useState,\r\n useRef,\r\n} from \"react\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport Row from \"react-bootstrap/Row\";\r\nimport Col from \"react-bootstrap/Col\";\r\nimport Button from \"react-bootstrap/Button\";\r\nimport Form from \"react-bootstrap/Form\";\r\nimport Card from \"react-bootstrap/Card\";\r\nimport InputGroup from \"react-bootstrap/InputGroup\";\r\nimport Select from \"react-select\";\r\nimport ModalAgregarClientes from \"./sis/ModalFacturacion/ModalAgregarCliente\";\r\nimport {\r\n getAllClientes,\r\n getClienteById,\r\n saveCliente,\r\n} from \"../../Api/cliente.js\";\r\nimport { getAllFormaPago } from \"../../Api/formaPago\";\r\nimport { getAllTimbrados, getTimbradoByQuery } from \"../../Api/timbrado\";\r\nimport { getAllPuntoVenta } from \"../../Api/puntoVenta\";\r\nimport { getAllSucursal } from \"../../Api/sucursal\";\r\nimport Swal from \"sweetalert2\";\r\nimport { TYPE_FACTURA } from \"../../Utils/const\";\r\nimport TableRows from \"./TableRows\";\r\nimport { insertFactura } from \"../../Api/facturacion\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { getAllCostos, getCostosbyID } from \"../../Api/Costos\";\r\nimport { getUserCredentials } from \"../../Api/usuario\";\r\nimport ModalPreview from \"./Preview\";\r\nimport genPDF from \"./pdfWriter\"\r\nimport genPDFDeskjet from \"./pdfWriterDeskjet.js\"\r\nimport genPDFHP from \"./pdfWriterHP.js\"\r\nconst showReducer = (curShow, state) => {\r\n switch (state.type) {\r\n case \"SHOW\":\r\n return {\r\n isShow: true,\r\n typeModal: state.typeModal,\r\n onReturnValue: state.onReturnValue,\r\n };\r\n case \"SHOW2\":\r\n return {\r\n isShow2: true,\r\n typeModal: state.typeModal,\r\n onReturnValue2: state.onReturnValue2,\r\n };\r\n case \"END\":\r\n return { ...curShow, isShow: false, isShow2: false };\r\n default:\r\n return { ...curShow, isShow: false };\r\n }\r\n};\r\nconst Generarfactura = () => {\r\n const Editdata = [{\r\n nombre:\"\",\r\n razonsocial:\"\",\r\n ruc:\"\",\r\n Ciudad:\"\",\r\n direccion:\"\",\r\n telefono:\"\",\r\n correo:\"\"\r\n }]\r\n\r\n const Compro = useRef(null)\r\n const fdp = useRef(null)\r\n const tp = useRef(null)\r\n const [Comprobante, setComprobante] = useState(true);\r\n const [Descuento, setDescuento] = useState(0);\r\n const [Precio, setPrecio] = useState();\r\n const [Contado, setContado] = useState(false);\r\n const [Credito, setCredito] = useState(false);\r\n const Ivafive = useRef(0);\r\n const Ivaten = useRef(0);\r\n const descuentototal = useRef(0)\r\n const [Ivaproducto, setIvaproducto] = useState();\r\n const Tim = useRef(0);\r\n const Suc = useRef(0);\r\n const PDV = useRef(0);\r\n const nfactura = useRef();\r\n const timbradoid = useRef();\r\n const navigate = useNavigate();\r\n const [rowsData, setRowsData] = useState([]);\r\n const addTableRows = () => {\r\n const rowsInput = {\r\n preciosindescuento:0,\r\n descuento:0,\r\n cantidad: 0,\r\n producto: \"\",\r\n precio: \"\",\r\n iva: \"\",\r\n total: \"\",\r\n };\r\n setRowsData([...rowsData, rowsInput]);\r\n };\r\n const deleteTableRows = (index) => {\r\n \r\n \r\n const rows = [...rowsData];\r\n rows.splice(index, 1);\r\n if (formData3.descuento === undefined) {\r\n formData3.descuento = 0;\r\n }\r\n const _ = require(\"lodash\");\r\n \r\n const sum = _.sumBy(rows, (rowsDatas) => Number(rowsDatas.total));\r\n const subtotal5 = _.sumBy(rows, (rowsDatas) => Number(rowsDatas.cinco));\r\n const subtotal10 = _.sumBy(rows, (rowsDatas) => Number(rowsDatas.diez));\r\n let i;\r\n let iva10 = 0;\r\n let iva5 = 0;\r\n for (i in rows) {\r\n if (rows[i].iva == 5) iva5 = iva5 + rows[i].total / 21;\r\n else iva10 = iva10 + rows[i].total / 11;\r\n }\r\n \r\n descuentototal.current=((sum * formData3.descuento) / 100);\r\n totalfactura.current=(sum - (sum * formData3.descuento) / 100);\r\n Ivaten.current=(Math.round(iva10));\r\n Ivafive.current=(Math.round(iva5));\r\n ivatotalfactura.current=(Math.round(iva5)+Math.round(iva10));\r\n setValue({\r\n ...formData3,\r\n totalmonto: sum - (sum * formData3.descuento) / 100,\r\n descuentomonto: (sum * formData3.descuento) / 100,\r\n iva10: Math.round(iva10),\r\n iva5: Math.round(iva5),\r\n ivatotal: Math.round(iva5)+Math.round(iva10),\r\n Subtotal5:subtotal5,\r\n Subtotal10:subtotal10,\r\n });\r\n setRowsData(rows);\r\n };\r\n const handleChange2 = (index, evnt) => {\r\n const { name, value } = evnt.target;\r\n const rowsInput = [...rowsData];\r\n rowsInput[index][name] = value;\r\n rowsInput[index][\"montodescuento\"]=Math.round((rowsInput[index][\"descuento\"]*rowsInput[index][\"preciosindescuento\"])/100)\r\n rowsInput[index][\"precio\"] = rowsInput[index][\"preciosindescuento\"] - rowsInput[index][\"montodescuento\"]\r\n rowsInput[index][\"total\"] = Math.round(rowsInput[index][\"precio\"] * rowsInput[index][\"cantidad\"]);\r\n if (rowsInput[index][\"iva\"]==5)\r\n{\r\n \r\n rowsInput[index][\"exenta\"]=\" \"\r\n rowsInput[index][\"cinco\"]=rowsInput[index][\"total\"]\r\n rowsInput[index][\"diez\"]=\" \"\r\n}\r\nif (rowsInput[index][\"iva\"]==10)\r\n{\r\n rowsInput[index][\"exenta\"]=\" \"\r\n rowsInput[index][\"cinco\"]=\" \"\r\n \r\n rowsInput[index][\"diez\"]=rowsInput[index][\"total\"]\r\n}\r\n\r\n setRowsData(rowsInput);\r\n Refresh()\r\n \r\n };\r\n const handleChange = (index, evnt) => {\r\n const { name, value } = evnt.target;\r\n const rowsInput = [...rowsData];\r\n rowsInput[index][name] = value;\r\n \r\n rowsInput[index][\"total\"] = Math.round(rowsInput[index][\"precio\"] * rowsInput[index][\"cantidad\"]);\r\n if (rowsInput[index][\"iva\"]==5)\r\n{\r\n \r\n rowsInput[index][\"exenta\"]=\" \"\r\n rowsInput[index][\"cinco\"]=rowsInput[index][\"total\"]\r\n rowsInput[index][\"diez\"]=\" \"\r\n}\r\nif (rowsInput[index][\"iva\"]==10)\r\n{\r\n rowsInput[index][\"exenta\"]=\" \"\r\n rowsInput[index][\"cinco\"]=\" \"\r\n \r\n rowsInput[index][\"diez\"]=rowsInput[index][\"total\"]\r\n}\r\n\r\n setRowsData(rowsInput);\r\n Refresh()\r\n \r\n };\r\n const handleChangeSelect = useCallback(async (index, evnt, name) => {\r\n Swal.fire({\r\n title: 'Cargando',\r\n html: 'Cargando datos',// add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n \r\n });\r\n const ReturnList = await getCostosbyID(evnt.value);\r\n Swal.close()\r\n setPrecio(Math.round(ReturnList.precioventa));\r\n setIvaproducto(ReturnList.ivavalor);\r\n const rowsInput = [...rowsData];\r\n \r\n \r\n rowsInput[index][\"idProducto\"] = evnt.value;\r\n rowsInput[index][\"artcod\"] = ReturnList.COD;\r\n rowsInput[index][name] = ReturnList.producto;\r\n rowsInput[index][\"preciosindescuento\"]=ReturnList.precioventa;\r\n rowsInput[index][\"montodescuento\"]=Math.round((rowsInput[index][\"descuento\"]*rowsInput[index][\"preciosindescuento\"])/100)\r\n rowsInput[index][\"precio\"] = Math.round(rowsInput[index][\"preciosindescuento\"]-((rowsInput[index][\"descuento\"]*rowsInput[index][\"preciosindescuento\"])/100))\r\n rowsInput[index][\"iva\"] = ReturnList.ivavalor;\r\n rowsInput[index][\"total\"] = Math.round(rowsInput[index][\"precio\"] * rowsInput[index][\"cantidad\"]);\r\n \r\nif (ReturnList.ivavalor==5)\r\n{\r\n \r\n rowsInput[index][\"exenta\"]=\" \"\r\n rowsInput[index][\"cinco\"]= rowsInput[index][\"precio\"] * rowsInput[index][\"cantidad\"];\r\n rowsInput[index][\"diez\"]=\" \"\r\n}\r\nif (ReturnList.ivavalor==10)\r\n{\r\n rowsInput[index][\"exenta\"]=\" \"\r\n rowsInput[index][\"cinco\"]=\" \"\r\n rowsInput[index][\"diez\"]= rowsInput[index][\"precio\"] * rowsInput[index][\"cantidad\"];\r\n}\r\n Refresh()\r\n\r\n setRowsData(rowsInput);\r\n });\r\n\r\n\r\n const [reducer, dispatchReducer] = useReducer(showReducer, {\r\n isShow: false,\r\n isShow2: false,\r\n typeModal: null,\r\n onReturnValue: null,\r\n });\r\n const handleShow4 = () => {\r\n dispatchReducer({ type: \"SHOW\", typeModal: \"CLIENTE\" });\r\n };\r\n const handleShow5 = () => {\r\n \r\n let errordescuento=0\r\n let errorcantidad=0\r\n for (let i=0;i {\r\n dispatchReducer({ type: \"END\" });\r\n };\r\n\r\n const timbradoID = useCallback(async (e) => {\r\n Tim.current = e.label;\r\n Swal.fire({\r\n title: 'Cargando',\r\n html: 'Cargando datos',// add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n \r\n });\r\n const objecttalonario = { Suc, PDV, Tim };\r\n const resultTimbrado = await getTimbradoByQuery(objecttalonario);\r\n Swal.close();\r\n if (resultTimbrado === undefined) {\r\n nfactura.current = \"\";\r\n } else {\r\n var f1 = new Date(resultTimbrado.fechaFinal);\r\n\r\n if (f1 < new Date()) {\r\n Swal.fire({\r\n title: \"Talonario Vencido\",\r\n html: `favor de reportar e Inhabilitar`,\r\n icon: \"warning\",\r\n confirmButtonColor: \"#00273a\",\r\n });\r\n navigate(\"/Opcionesdetimbrado\");\r\n } else {\r\n nfactura.current = resultTimbrado.numeroActual;\r\n if (nfactura.current > resultTimbrado.numeroFinal) {\r\n Swal.fire({\r\n title: \"Talonario Sin Facturas\",\r\n html: `favor de reportar e Inhabilitar`,\r\n icon: \"warning\",\r\n confirmButtonColor: \"#00273a\",\r\n });\r\n navigate(\"/Opcionesdetimbrado\");\r\n } else {\r\n if (nfactura.current == resultTimbrado.numeroFinal) {\r\n Swal.fire({\r\n title: \"Ultima Factura del talonario\",\r\n html: `favor de reportar`,\r\n icon: \"warning\",\r\n confirmButtonColor: \"#00273a\",\r\n });\r\n }\r\n }\r\n }\r\n\r\n timbradoid.current = resultTimbrado.idtimbrado;\r\n }\r\n\r\n setValue({\r\n ...formData3,\r\n timbrado: Tim.current,\r\n idtimbrado: timbradoid.current,\r\n pf1: Suc.current,\r\n pf2: PDV.current,\r\n numeroActual: nfactura,\r\n moneda: \"Gs\",\r\n });\r\n });\r\n const sucursalID = useCallback(async (e) => {\r\n Suc.current = e.value;\r\n Swal.fire({\r\n title: 'Cargando',\r\n html: 'Cargando datos',// add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n \r\n });\r\n const objecttalonario = { Suc, PDV, Tim };\r\n const resultTimbrado = await getTimbradoByQuery(objecttalonario);\r\n Swal.close()\r\n if (resultTimbrado === undefined) {\r\n nfactura.current = \"\";\r\n } else {\r\n var f1 = new Date(resultTimbrado.fechaFinal);\r\n\r\n if (f1 < new Date()) {\r\n Swal.fire({\r\n title: \"Talonario Vencido\",\r\n html: `favor de reportar e Inhabilitar`,\r\n icon: \"warning\",\r\n confirmButtonColor: \"#00273a\",\r\n });\r\n navigate(\"/Opcionesdetimbrado\");\r\n } else {\r\n nfactura.current = resultTimbrado.numeroActual;\r\n if (nfactura.current > resultTimbrado.numeroFinal) {\r\n Swal.fire({\r\n title: \"Talonario Sin Facturas\",\r\n html: `favor de reportar e Inhabilitar`,\r\n icon: \"warning\",\r\n confirmButtonColor: \"#00273a\",\r\n });\r\n navigate(\"/Opcionesdetimbrado\");\r\n } else {\r\n if (nfactura.current == resultTimbrado.numeroFinal) {\r\n Swal.fire({\r\n title: \"Ultima Factura del talonario\",\r\n html: `favor de reportar`,\r\n icon: \"warning\",\r\n confirmButtonColor: \"#00273a\",\r\n });\r\n }\r\n }\r\n }\r\n\r\n timbradoid.current = resultTimbrado.idtimbrado;\r\n }\r\n setValue({\r\n ...formData3,\r\n timbrado: Tim.current,\r\n idtimbrado: timbradoid.current,\r\n pf1: Suc.current,\r\n pf2: PDV.current,\r\n numeroActual: nfactura,\r\n moneda: \"Gs\",\r\n });\r\n });\r\n const pdvID = useCallback(async (e) => {\r\n PDV.current = e.value;\r\n Swal.fire({\r\n title: 'Cargando',\r\n html: 'Cargando datos',// add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n \r\n });\r\n const objecttalonario = { Suc, PDV, Tim };\r\n const resultTimbrado = await getTimbradoByQuery(objecttalonario);\r\n Swal.close()\r\n if (resultTimbrado === undefined) {\r\n nfactura.current = \"\";\r\n } else {\r\n var f1 = new Date(resultTimbrado.fechaFinal);\r\n\r\n if (f1 < new Date()) {\r\n Swal.fire({\r\n title: \"Talonario Vencido\",\r\n html: `favor de reportar e Inhabilitar`,\r\n icon: \"warning\",\r\n confirmButtonColor: \"#00273a\",\r\n });\r\n navigate(\"/Opcionesdetimbrado\");\r\n } else {\r\n nfactura.current = resultTimbrado.numeroActual;\r\n if (nfactura.current > resultTimbrado.numeroFinal) {\r\n Swal.fire({\r\n title: \"Talonario Sin Facturas\",\r\n html: `favor de reportar e Inhabilitar`,\r\n icon: \"warning\",\r\n confirmButtonColor: \"#00273a\",\r\n });\r\n navigate(\"/Opcionesdetimbrado\");\r\n } else {\r\n if (nfactura.current == resultTimbrado.numeroFinal) {\r\n Swal.fire({\r\n title: \"Ultima Factura del talonario\",\r\n html: `favor de reportar`,\r\n icon: \"warning\",\r\n confirmButtonColor: \"#00273a\",\r\n });\r\n }\r\n }\r\n }\r\n\r\n timbradoid.current = resultTimbrado.idtimbrado;\r\n }\r\n setValue({\r\n ...formData3,\r\n timbrado: Tim.current,\r\n idtimbrado: timbradoid.current,\r\n pf1: Suc.current,\r\n pf2: PDV.current,\r\n numeroActual: nfactura,\r\n moneda: \"Gs\",\r\n });\r\n });\r\n const [Rucval, setRuval] = useState([]);\r\n const [Rzval, setRzval] = useState([]);\r\n const clienteid = useCallback(async (e) => {\r\n const { value, label } = e;\r\n Swal.fire({\r\n title: 'Cargando',\r\n html: 'Cargando datos',// add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n \r\n });\r\n const resultCliente = await getClienteById(value);\r\n Swal.close()\r\n const { ruc, razonsocial,direccion,telefono } = resultCliente[0];\r\n setRuval(ruc);\r\n setRzval(razonsocial);\r\n if (direccion!=null)\r\n {\r\n if (direccion.length>45)\r\n {\r\n Swal.fire({\r\n title: \"Direccion Erronea\",\r\n html: `Dirrecion Muy larga`,\r\n icon: \"error\",\r\n confirmButtonColor: \"#00273a\",\r\n });\r\n navigate(\r\n '/FichaCliente',\r\n {\r\n state: {\r\n id: value\r\n }\r\n }\r\n )\r\n }\r\n }\r\n setValue({\r\n ...formData3,\r\n idCliente: value,\r\n ruc: ruc,\r\n cliente: label,\r\n razonsocial: razonsocial,\r\n direccion:direccion,\r\n telefono:telefono\r\n });\r\n });\r\n\r\n const [formData3, setValue] = useState([]);\r\n\r\n const ReturnFactura = async ({datosfactura,detallefactura,isCredito,TextoNumber}) => {\r\n \r\n setValue((prevState) => {\r\n const currentData = prevState;\r\n currentData[\"detalleFactura\"] = rowsData;\r\n return currentData;\r\n });\r\n dispatchReducer({ type: \"END\" });\r\n if (nfactura.current != \"\") {\r\n try {\r\n const { value: impresora } = await Swal.fire({\r\n title: \"Seleccione Impresora\",\r\n input: \"select\",\r\n confirmButtonColor: 'black',\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n inputOptions: {\r\n Impresoras: {\r\n Deskjet: \"Deskjet\",\r\n HP: \"HP\",\r\n Epson: \"Epson\",\r\n },\r\n },\r\n showCancelButton: false,\r\n inputValidator: (value) => {\r\n return new Promise((resolve) => {\r\n \r\n resolve();\r\n });\r\n }\r\n });\r\n let impy\r\n let impx\r\n if (impresora===\"Deskjet\")\r\n {\r\n impy=-10\r\n impx=-5\r\n }\r\n else\r\n {\r\n impy=-5\r\n impx=-8\r\n }\r\n const result = await insertFactura(formData3, rowsData);\r\n if (result) {\r\n Swal.fire({\r\n title: \"Factura Guardada\",\r\n html: `Se Guardo Correctamente`,\r\n icon: \"success\",\r\n confirmButtonColor: \"#00273a\",\r\n });\r\n let sum1=0\r\n let sum2=0\r\n datosfactura.gravado05=0\r\n datosfactura.gravado10=0\r\n if (impresora===\"Deskjet\")\r\n {\r\n genPDFDeskjet({datosfactura,detallefactura,isCredito,TextoNumber,sum1,sum2,impy,impx})\r\n }else if (impresora===\"HP\")\r\n {\r\n genPDFHP({datosfactura,detallefactura,isCredito,TextoNumber,sum1,sum2,impy,impx})\r\n }\r\n else \r\n {\r\n genPDF({datosfactura,detallefactura,isCredito,TextoNumber,sum1,sum2,impy,impx})\r\n }\r\n \r\n navigate(\"/Facturas\");\r\n }\r\n } catch (err) {\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Oops...\",\r\n text: `${err}`,\r\n });\r\n }\r\n } else\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Oops...\",\r\n text: `No Existe Talonario`,\r\n confirmButtonColor: \"#00273a\",\r\n });\r\n };\r\n const [listCostos, setListCostos] = useState([]);\r\n const [listTimbrado, setListTimbrado] = useState([]);\r\n const [listFormadepago, setListFormadepago] = useState([]);\r\n const [listCliente, setListCliente] = useState([]);\r\n const [listSucursal, setListSucursal] = useState([]);\r\n const [lisPDV, setListPDV] = useState([]);\r\n const ivatotalfactura = useRef(0);\r\n const totalfactura = useRef(0);\r\n\r\n // Calcular\r\n const Refresh = () => {\r\n console.log(formData3)\r\n if (formData3.descuento === undefined) {\r\n formData3.descuento = 0;\r\n }\r\n const _ = require(\"lodash\");\r\n \r\n const sum = _.sumBy(rowsData, (rowsDatas) => Number(rowsDatas.total));\r\n const subtotal5 = _.sumBy(rowsData, (rowsDatas) => Number(rowsDatas.cinco));\r\n const subtotal10 = _.sumBy(rowsData, (rowsDatas) => Number(rowsDatas.diez));\r\n let i;\r\n let iva10 = subtotal10/11;\r\n let iva5 = subtotal5/11;\r\n \r\n \r\n descuentototal.current=_.sumBy(rowsData, (rowsDatas) => Number(rowsDatas.montodescuento));\r\n totalfactura.current=(sum - (sum * formData3.descuento) / 100);\r\n Ivaten.current=(Math.round(iva10));\r\n Ivafive.current=(Math.round(iva5));\r\n ivatotalfactura.current=(Math.round(iva5)+Math.round(iva10));\r\n setValue({\r\n ...formData3,\r\n totalmonto: sum - (sum * formData3.descuento) / 100,\r\n descuentomonto: (sum * formData3.descuento) / 100,\r\n iva10: Math.round(iva10),\r\n iva5: Math.round(iva5),\r\n ivatotal: Math.round(iva5)+Math.round(iva10),\r\n Subtotal5:subtotal5,\r\n Subtotal10:subtotal10,\r\n });\r\n \r\n \r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n try {\r\n Swal.fire({\r\n title: 'Cargando',\r\n html: 'Cargando datos',// add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n \r\n });\r\n const listTimbrados = await getAllTimbrados();\r\n const listResult2 = await getAllFormaPago();\r\n const listResult3 = await getAllClientes();\r\n const listResult4 = await getAllSucursal();\r\n const listResult5 = await getAllPuntoVenta();\r\n const listResult6 = await getAllCostos();\r\n const resultfive = await getUserCredentials();\r\n if (resultfive.IdUsuario===79)\r\n {\r\n navigate(\"/Facturas\");\r\n }\r\n \r\n const mapeoCostos = listResult6.map((item) => {\r\n return {\r\n value: item.idcostos,\r\n label: item.COD + \" \" + item.producto,\r\n };\r\n });\r\n setListCostos(mapeoCostos);\r\n\r\n const resulting = listTimbrados.reduce((acc, item) => {\r\n if (!acc.includes(item.timbrado)) {\r\n acc.push(item.timbrado);\r\n }\r\n return acc;\r\n }, []);\r\n\r\n const mapeoTimbrado = resulting.map((item) => {\r\n return { value: item, label: item };\r\n });\r\n\r\n setListTimbrado(mapeoTimbrado);\r\n\r\n const resultMapeado = listResult2.map((item) => {\r\n return { label: item.nombre, value: item.nombre };\r\n });\r\n setListFormadepago(resultMapeado);\r\n const resultMapeado2 = listResult3.map((item) => {\r\n return { label: item.nombre+\" \"+item.ruc, value: item.idClientes };\r\n });\r\n setListCliente(resultMapeado2);\r\n const resultMapeado3 = listResult4.map((item) => {\r\n return { label: item.codigo + \" \" + item.nombre, value: item.codigo };\r\n });\r\n setListSucursal(resultMapeado3);\r\n const resultMapeado5 = listResult5.map((item) => {\r\n return { label: item.codigo + \" \" + item.nombre, value: item.codigo };\r\n });\r\n setListPDV(resultMapeado5);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n fdp.current=\"Efectivo\"\r\n tp.current=\"Contado\"\r\n Swal.close();\r\n })();\r\n }, []);\r\n const ComprobarComprobante = (fdp,tp) => {\r\n if (tp==\"Credito\")\r\n {\r\n setComprobante(true)\r\n Compro.current.value=\"\"\r\n setValue({\r\n ...formData3,\r\n numerodecomprobante:\"NO\"\r\n });\r\n \r\n }else if (fdp==\"Efectivo\")\r\n {\r\n setComprobante(true)\r\n Compro.current.value=\"\"\r\n setValue({\r\n ...formData3,\r\n numerodecomprobante:\"NO\"\r\n });\r\n }\r\n else {\r\n setComprobante(false)\r\n\r\n }\r\n\r\n\r\n }\r\n \r\n\r\n const onReturnDataCliente = async (data) => {\r\n try {\r\n Swal.fire({\r\n title: 'Cargando',\r\n html: 'Cargando datos',// add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n \r\n });\r\n const result = await saveCliente({ ...data, isNew: true });\r\n Swal.close()\r\n if (result) {\r\n if (result) {\r\n Swal.fire({\r\n title: \"Cliente Cargado\",\r\n html: `Se cargo correctalmente el cliente`,\r\n icon: \"success\",\r\n confirmButtonColor: \"#00273a\",\r\n });\r\n const listResult3 = await getAllClientes();\r\n const resultMapeado2 = listResult3.map((item) => {\r\n return { label: item.nombre+\" \"+item.ruc, value: item.idClientes };\r\n });\r\n setListCliente(resultMapeado2);\r\n dispatchReducer({ type: \"END\" });\r\n }\r\n }\r\n } catch (err) {\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Oops...\",\r\n text: `${err}`,\r\n });\r\n }\r\n };\r\n\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Fecha:  \r\n \r\n {new Date().toLocaleDateString()}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Timbrado: \r\n {\r\n timbradoID(e);\r\n }}\r\n />\r\n
    \r\n
    \r\n Sucursal: \r\n {\r\n sucursalID(e);\r\n }}\r\n />\r\n
    \r\n
    \r\n Punto de Venta: \r\n {\r\n pdvID(e);\r\n }}\r\n />\r\n
    \r\n \r\n \r\n
    \r\n Termino de Pago: \r\n {\r\n \r\n tp.current=e.value\r\n ComprobarComprobante(fdp.current,tp.current)\r\n setValue({\r\n ...formData3,\r\n tipoFactura: e.value,\r\n });\r\n \r\n\r\n }}\r\n />\r\n
    \r\n
    \r\n \r\n Fecha de Vencimiento: \r\n \r\n {\r\n \r\n setValue({\r\n ...formData3,\r\n fechapagovencimiento: e.target.value,\r\n });\r\n }}\r\n />\r\n
    \r\n { (formData3.tipoFactura==\"Credito\") &&\r\n
    \r\n \r\n Recibo: \r\n \r\n {\r\n setValue({\r\n ...formData3,\r\n recibocredito: e.target.value,\r\n });\r\n }}\r\n />\r\n
    \r\n }\r\n \r\n \r\n \r\n
    \r\n Forma de Pago: \r\n {\r\n setValue({\r\n ...formData3,\r\n formadepago: e.value,\r\n });\r\n fdp.current=e.value\r\n ComprobarComprobante(fdp.current,tp.current)\r\n \r\n }}\r\n />\r\n
    \r\n
    \r\n \r\n Numero de  Comprobante: \r\n \r\n {\r\n setValue({\r\n ...formData3,\r\n numerodecomprobante: e.target.value,\r\n });\r\n }}\r\n />\r\n
    \r\n
    \r\n \r\n Obs.\r\n \r\n {\r\n setValue({\r\n ...formData3,\r\n obs: e.target.value,\r\n });\r\n }}\r\n />\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Numero de Factura:  \r\n \r\n \r\n {Suc.current}-{PDV.current}-{nfactura.current}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Factura a:\r\n \r\n \r\n {\" \"}\r\n {\r\n clienteid(e);\r\n }}\r\n />\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
    Dcto.Cant.\r\n {\" \"}\r\n Cod. Producto/Servicio\r\n PrecioIvaTotal\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n Descuento:\r\n \r\n {descuentototal.current}\r\n \r\n
    \r\n
    \r\n Iva 10:\r\n \r\n {Ivaten.current}\r\n \r\n
    \r\n
    \r\n Iva 5:\r\n \r\n {Ivafive.current}\r\n \r\n
    \r\n
    \r\n Iva Total:\r\n \r\n {ivatotalfactura.current}\r\n \r\n
    \r\n
    \r\n \r\n Total:\r\n {totalfactura.current}\r\n \r\n \r\n
    \r\n \r\n Generar Factura\r\n \r\n
    \r\n \r\n \r\n
    \r\n {reducer.isShow && (\r\n \r\n )}\r\n {reducer.isShow2 && (\r\n \r\n )}\r\n \r\n );\r\n};\r\nexport default Generarfactura;\r\n","import { useEffect} from \"react\";\r\nconst events = [\r\n \"load\",\r\n \"mousemove\",\r\n \"mousedown\",\r\n \"click\",\r\n \"scroll\",\r\n \"keypress\",\r\n ];\r\nconst AppLogout = ({ children }) => {\r\n let timer;\r\n\r\n // this function sets the timer that logs out the user after 10 secs\r\n const handleLogoutTimer = () => {\r\n timer = setTimeout(() => {\r\n // clears any pending timer.\r\n resetTimer();\r\n // Listener clean up. Removes the existing event listener from the window\r\n Object.values(events).forEach((item) => {\r\n window.removeEventListener(item, resetTimer);\r\n });\r\n // logs out user\r\n logoutAction();\r\n }, 300000); // 10000ms = 10secs. You can change the time.\r\n };\r\n \r\n // this resets the timer if it exists.\r\n const resetTimer = () => {\r\n if (timer) clearTimeout(timer);\r\n };\r\n \r\n // when component mounts, it adds an event listeners to the window\r\n // each time any of the event is triggered, i.e on mouse move, click, scroll, keypress etc, the timer to logout user after 10 secs of inactivity resets.\r\n // However, if none of the event is triggered within 10 secs, that is app is inactive, the app automatically logs out.\r\n useEffect(() => {\r\n Object.values(events).forEach((item) => {\r\n window.addEventListener(item, () => {\r\n resetTimer();\r\n handleLogoutTimer();\r\n });\r\n });\r\n },);\r\n \r\n // logs out user by clearing out auth token in localStorage and redirecting url to /signin page.\r\n const logoutAction = () => {\r\n localStorage.clear();\r\n window.location.pathname = \"/login\";\r\n };\r\n \r\n return children;\r\n };\r\n export default AppLogout;","import React from 'react';\r\n\r\nexport const ColumnFilter = ( { column } ) => {\r\n\t\r\n\tconst {filterValue, setFilter} = column\r\n\treturn(\r\n\t\t
    \r\n\t\t\r\n\t\t\t setFilter(e.target.value)} />\r\n\t\t
    \r\n\t)\r\n} ","import {format} from 'date-fns';\r\nimport { ColumnFilter } from './ColumnFilter';\r\nexport const COLUMNS = [\r\n\t{\r\n\t\tHeader : 'id ',\r\n\t\tFooter : 'id',\r\n\t\taccessor: 'idProveedores',\r\n\t\tFilter: ColumnFilter,\r\n\t\tdisableFilters: true,\r\n\t},\r\n\t{\r\n\t\tHeader : 'proveedor',\r\n\t\tFooter : 'nombre',\r\n\t\taccessor: 'proveedor',\r\n\t\tFilter: ColumnFilter,\r\n\t\tdisableFilters: true,\r\n\t},\r\n\t{\r\n\t\tHeader : 'ruc',\r\n\t\tFooter : 'ruc',\r\n\t\taccessor: 'ruc',\r\n\t\tFilter: ColumnFilter,\r\n\t\tdisableFilters: true,\r\n\t},\r\n\t\r\n\t{\r\n\t\tHeader : 'razonsocial',\r\n\t\tFooter : 'razonsocial',\r\n\t\taccessor: 'razonsocial',\r\n\t\tFilter: ColumnFilter,\r\n\t\tdisableFilters: true,\r\n\t},\r\n\t{\r\n\t\tHeader : 'telefono',\r\n\t\tFooter : 'telefono',\r\n\t\taccessor: 'telefono',\r\n\t\tFilter: ColumnFilter,\r\n\t\tdisableFilters: true,\r\n\t},\r\n]\r\nexport const COLUMNSCOMPRA = [\r\n\t{\r\n\t\tHeader: () => (\r\n\t\t\tFactura Compra),\r\n\t\taccessor: 'idfactura',\r\n\t\tCell: (props) => {\r\n\t\t\treturn (\r\n\t\t\t

    \r\n\t\t\t\t{props.value}\r\n\t\t\t

    \r\n\t\t\t);\r\n\t\t },\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t\r\n\t{\r\n\t\tHeader: () => (\r\n\t\t\tCant.),\r\n\t\taccessor: 'cantidad',\r\n\t\tCell: (props) => {\r\n\t\t\treturn (\r\n\t\t\t

    \r\n\t\t\t\t{props.value}\r\n\t\t\t

    \r\n\t\t\t);\r\n\t\t },\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader: () => (\r\n\t\t\tProducto),\r\n\t\taccessor: 'producto',\r\n\t\tCell: (props) => {\r\n\t\t\treturn (\r\n\t\t\t

    \r\n\t\t\t\t{props.value}\r\n\t\t\t

    \r\n\t\t\t);\r\n\t\t },\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t\r\n\t{\r\n\t\tHeader: () => (\r\n\t\t\tPrecio),\r\n\t\t\r\n\t\taccessor: 'precio',\r\n\t\tCell: (props) => {\r\n\t\t\treturn (\r\n\t\t\t

    \r\n\t\t\t\t{props.value}\r\n\t\t\t

    \r\n\t\t\t);\r\n\t\t },\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader: () => (\r\n\t\t\tIva.),\r\n\t\t\r\n\t\taccessor: 'iva',\r\n\t\tCell: (props) => {\r\n\t\t\treturn (\r\n\t\t\t

    \r\n\t\t\t\t{props.value}\r\n\t\t\t

    \r\n\t\t\t);\r\n\t\t },\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader: () => (\r\n\t\t\tTotal),\r\n\t\t\r\n\t\taccessor: 'total',\r\n\t\tCell: (props) => {\r\n\t\t\treturn (\r\n\t\t\t

    \r\n\t\t\t\t{props.value}\r\n\t\t\t

    \r\n\t\t\t);\r\n\t\t },\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n]\r\nexport const COLUMNS2 = [\r\n\t{\r\n\t\tHeader : 'id',\r\n\t\tFooter : 'id',\r\n\t\taccessor: 'idFactura',\r\n\t\tFilter: ColumnFilter,\r\n\t\t//disableFilters: true,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Nº de Factura',\r\n\t\tFooter : 'Nº de Factura',\r\n\t\taccessor: 'numerofactura',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Razon Social',\r\n\t\tFooter : 'Razon Social',\r\n\t\taccessor: 'razonsocial',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Ruc',\r\n\t\tFooter : 'Ruc',\r\n\t\taccessor: 'ruc',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'fecha Emision',\r\n\t\tFooter : 'fechaEmision',\r\n\t\taccessor: 'fechafactura',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t{\r\n\t\tHeader : 'Tipo Factura',\r\n\t\tFooter : 'Formadepago',\r\n\t\taccessor: 'tipoFactura',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n\t\r\n\t{\r\n\t\tHeader : 'Total',\r\n\t\tFooter : 'Total',\r\n\t\taccessor: 'totalFactura',\r\n\t\tFilter: ColumnFilter,\r\n\t},\r\n]\r\nexport const GROUPED_COLUMNS = [\r\n\t{\r\n\t\tHeader : 'Id',\r\n\t\tFooter : 'Id',\r\n\t\taccessor: 'id'\r\n\t},\r\n\t{\r\n\t\tHeader : 'Name',\r\n\t\tFooter : 'Name',\r\n\t\tcolumns: [\r\n\t\t\t{\r\n\t\t\t\tHeader : 'First Name',\r\n\t\t\t\tFooter : 'First Name',\r\n\t\t\t\taccessor: 'first_name'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tHeader : 'Last Name',\r\n\t\t\t\tFooter : 'Last Name',\r\n\t\t\t\taccessor: 'last_name'\r\n\t\t\t},\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tHeader: 'Info',\r\n\t\tFooter: 'Info',\r\n\t\tcolumns: [\r\n\t\t\t{\r\n\t\t\t\tHeader : 'Date of Birth',\r\n\t\t\t\tFooter : 'Date of Birth',\r\n\t\t\t\taccessor: 'date_of_birth'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tHeader : 'Country',\r\n\t\t\t\tFooter : 'Country',\r\n\t\t\t\taccessor: 'country',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tHeader : 'Phone',\r\n\t\t\t\tFooter : 'Phone',\r\n\t\t\t\taccessor: 'phone'\r\n\t\t\t},\r\n\t\t]\r\n\t},\r\n]","import React from 'react';\r\n\r\nexport const GlobalFilter = ( {filter, setFilter} ) =>{\r\n\treturn(\r\n\t\t
    \r\n\t\t\tSearch : {' '}\r\n\t\t\t setFilter(e.target.value)} style={{width: \"20%\"}}\r\n />\r\n\t\t
    \r\n\t)\r\n} ","import { useState } from \"react\";\r\nimport { Button, Modal } from \"react-bootstrap\";\r\nimport Swal from \"sweetalert2\";\r\nconst AgregarProveedores = (props) => {\r\n const { estado,onCloseModal,onReturnValue,Editdata,isnew} = props;\r\n\r\n const [formData3, setValue] = useState([]);\r\n const handleSubmit2 = (event) => {\r\n formData3.proveedor=formData3.proveedor? formData3.proveedor:Editdata[0].proveedor\r\n formData3.razonsocial=formData3.razonsocial? formData3.razonsocial:Editdata[0].razonsocial\r\n formData3.ruc=formData3.ruc? formData3.ruc:Editdata[0].ruc\r\n formData3.ciudad=formData3.ciudad? formData3.ciudad:Editdata[0].ciudad\r\n formData3.direccion=formData3.direccion? formData3.direccion:Editdata[0].direccion\r\n formData3.telefono=formData3.telefono? formData3.telefono:Editdata[0].telefono\r\n formData3.Correo=formData3.correo? formData3.Correo:Editdata[0].Correo\r\n formData3.idProveedor=Editdata[0].idProveedores\r\n if (formData3.ruc===\"\" || formData3.razonsocial===\"\" || formData3.proveedor===\"\")\r\n {\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Oops...\",\r\n text: \"Faltan Datos!\",\r\n confirmButtonColor: \"black\",\r\n });\r\n }else\r\n {\r\n onReturnValue(formData3,isnew);\r\n }\r\n };\r\n return (\r\n <>\r\n \r\n \r\n Agregar Proveedores\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({ ...formData3, proveedor: e.target.value });\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({ ...formData3,razonsocial: e.target.value });\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({ ...formData3, ruc: e.target.value });\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({ ...formData3, ciudad: e.target.value });\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({ ...formData3, direccion: e.target.value });\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({ ...formData3, telefono: e.target.value });\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setValue({ ...formData3, correo: e.target.value });\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default AgregarProveedores;\r\n","import { CALL_API2 } from \"../Utils/const\";\r\nimport { getAuthToken } from \"../context/auth-context\";\r\n\r\nexport async function getAllProveedores() {\r\n const token = getAuthToken();\r\n const result = await fetch(`${CALL_API2}/proveedores`, {\r\n headers: { Authorization: `Bearer ${token}` },\r\n });\r\n\r\n const data = await result.json();\r\n \r\n if (!result.ok) {\r\n throw new Error(data.message);\r\n }\r\n\r\n return data.result;\r\n}\r\nexport async function saveProveedor(ProveedorObject) {\r\nconsole.log(ProveedorObject)\r\n const { isNew, idProveedor } = ProveedorObject;\r\n const token = getAuthToken();\r\n let urlSend = `${CALL_API2}/proveedor`;\r\n \r\n let method = \"POST\";\r\n \r\n if (ProveedorObject.isNew) delete ProveedorObject.isNew;\r\n if (ProveedorObject.idProveedor) delete ProveedorObject.idForma;\r\n \r\n if (!isNew) {\r\n urlSend = `${urlSend}/${idProveedor}`;\r\n method = \"PUT\";\r\n }\r\n \r\n const result = await fetch(urlSend, {\r\n method: method,\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(ProveedorObject),\r\n });\r\n \r\n const data = await result.json();\r\n \r\n if (!result.ok) {\r\n throw new Error(data.message);\r\n }\r\n \r\n return data.isSaved;\r\n }\r\n\r\nexport async function getProveedorById(idProveedores) {\r\n \r\n const token = getAuthToken();\r\n \r\n const response = await fetch(`${CALL_API2}/proveedor/${idProveedores}`, {\r\n headers: { Authorization: `Bearer ${token}` },\r\n });\r\n \r\n const data = await response.json();\r\n \r\n if (!response.ok) {\r\n throw new Error(data.message);\r\n }\r\n return data.result;\r\n}\r\n/*\r\nexport async function getSearchClient(sqlQuery) {\r\n const token = getAuthToken();\r\n const response = await fetch(\r\n `${CALL_API2}/search-cliente?sqlQuery=${sqlQuery}`,\r\n {\r\n headers: { Authorization: `Bearer ${token}` },\r\n }\r\n );\r\n const data = await response.json();\r\n\r\n if (!response.ok) {\r\n throw new Error(data.message);\r\n }\r\n return data.result;\r\n}\r\n\r\n*/\r\n\r\nexport async function deleteProveedor(idProveedor) {\r\n const token = getAuthToken();\r\n const response = await fetch(`${CALL_API2}/Proveedor/${idProveedor}`, {\r\n headers: { Authorization: `Bearer ${token}` },\r\n method: \"DELETE\",\r\n });\r\n const data = await response.json();\r\n\r\n if (!response.ok) {\r\n throw new Error(data.message);\r\n }\r\n return data.isDeleted;\r\n}","import React, {\r\n Fragment,\r\n useCallback,\r\n useEffect,\r\n useReducer,\r\n useState,\r\n useMemo,\r\n} from \"react\";\r\nimport { Card, Button } from \"react-bootstrap\";\r\nimport Swal from \"sweetalert2\";\r\n\r\nimport {\r\n useTable,\r\n useGlobalFilter,\r\n useFilters,\r\n usePagination,\r\n} from \"react-table\";\r\nimport { TailSpin } from \"react-loader-spinner\";\r\nimport { COLUMNS } from \"./Columns\";\r\nimport { GlobalFilter } from \"./GlobalFilter\";\r\n//import './table.css';\r\nimport \"./filtering.css\";\r\nimport AgregarProveedores from \"./ModalCompras/AgregarProveedores\";\r\nimport { getAllProveedores, saveProveedor,deleteProveedor} from \"../../../Api/Proveedores\";\r\n\r\nconst showReducer = (curShow, state) => {\r\n switch (state.type) {\r\n case \"SHOW\":\r\n return {\r\n isShow: true,\r\n onReturnValue: state.onReturnValue,\r\n };\r\n case \"END\":\r\n return { ...curShow, isShow: false };\r\n }\r\n};\r\nconst Proveedores = () => {\r\n \r\n const [Editdata,setEditdata]=useState([\r\n {\r\n proveedor: \"\",\r\n razonsocial: \"\",\r\n ruc: \"\",\r\n Ciudad: \"\",\r\n direccion: \"\",\r\n telefono: \"\",\r\n correo: \"\",\r\n },\r\n ])\r\n const [isnew,setisnew]=useState(true)\r\n const [loading, setLoading] = useState(true);\r\n const [reducer, dispatchReducer] = useReducer(showReducer, {\r\n isShow: false,\r\n });\r\n const [data, setdata] = useState([]);\r\n\r\n const assigmentValue = useCallback(async () => {\r\n try {\r\n const result = await getAllProveedores();\r\n setdata([...result]);\r\n setLoading(false);\r\n } catch (err) {\r\n console.log(err);\r\n setLoading(false);\r\n }\r\n });\r\n useEffect(() => {\r\n assigmentValue();\r\n }, []);\r\n const handleShow4 = () => {\r\n setEditdata([\r\n {\r\n proveedor: \"\",\r\n razonsocial: \"\",\r\n ruc: \"\",\r\n Ciudad: \"\",\r\n direccion: \"\",\r\n telefono: \"\",\r\n correo: \"\",\r\n },\r\n ])\r\n setisnew(true)\r\n dispatchReducer({ type: \"SHOW\"});\r\n };\r\n const onCloseModal = () => {\r\n dispatchReducer({ type: \"END\" });\r\n };\r\n const columns = useMemo(() => COLUMNS, []);\r\n const tableInstance = useTable(\r\n {\r\n columns,\r\n data,\r\n initialState: { pageIndex: 0 },\r\n },\r\n useFilters,\r\n useGlobalFilter,\r\n usePagination\r\n );\r\n\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow,\r\n state,\r\n page,\r\n gotoPage,\r\n pageCount,\r\n pageOptions,\r\n nextPage,\r\n previousPage,\r\n canNextPage,\r\n canPreviousPage,\r\n setGlobalFilter,\r\n } = tableInstance;\r\n const onReturnDataCliente = async (data,isNew) => {\r\n try {\r\n Swal.fire({\r\n title: \"Cargando\",\r\n html: \"Cargando datos\", // add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n });\r\n const result = await saveProveedor({ ...data, isNew });\r\n\r\n if (result) {\r\n if (result) {\r\n const listResult = await getAllProveedores();\r\n setdata([...listResult]);\r\n Swal.close();\r\n Swal.fire({\r\n title: \"Proveedor Cargado\",\r\n html: `Se cargo correctalmente el Proveedor`,\r\n icon: \"success\",\r\n confirmButtonColor: \"black\",\r\n });\r\n dispatchReducer({ type: \"END\" });\r\n }\r\n }\r\n } catch (err) {\r\n Swal.close();\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Oops...\",\r\n text: `${err}`,\r\n });\r\n }\r\n };\r\n\r\n const { globalFilter, pageIndex } = state;\r\n const Editar = (item) => {\r\n let row = data.filter(num => num.idProveedores===item);\r\n setEditdata(row)\r\n setisnew(false);\r\n dispatchReducer({ type: \"SHOW\"});\r\n \r\n \r\n };\r\n const Delete = (id) => {\r\n try {\r\n Swal.fire({\r\n title: \"Estas seguro/a de Eliminar?\",\r\n text: \"No es Reversible!\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"black\",\r\n cancelButtonColor: \"red\",\r\n confirmButtonText: \"Si! Eliominar\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n Swal.fire({\r\n title: \"Cargando\",\r\n html: \"Cargando datos\", // add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n });\r\n deleteProveedor(id)\r\n assigmentValue();\r\n Swal.close();\r\n Swal.fire({\r\n title: \"Eliminado\",\r\n text: \"Proveedor Eliminado\",\r\n icon: \"warning\",\r\n confirmButtonColor: \"black\",\r\n });\r\n }\r\n });\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Proveedores\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n

    \r\n \r\n \r\n {headerGroups.map((headerGroup) => (\r\n \r\n {headerGroup.headers.map((column) => (\r\n \r\n {column.render(\"Header\")}\r\n {column.canFilter\r\n ? column.render(\"Filter\")\r\n : null}\r\n \r\n ))}\r\n Opciones\r\n \r\n ))}\r\n \r\n\r\n \r\n {page.map((row) => {\r\n prepareRow(row);\r\n return (\r\n \r\n {row.cells.map((cell) => {\r\n return (\r\n \r\n \r\n {cell.render(\"Cell\")}{\" \"}\r\n \r\n );\r\n })}\r\n \r\n \r\n Editar(row.values.idProveedores)}\r\n className=\"fas fa-pencil-alt\"\r\n size=\"sm\"\r\n >\r\n \r\n \r\n Delete(row.values.idProveedores)}\r\n className=\"fa fa-trash \"\r\n variant=\"danger\"\r\n size=\"sm\"\r\n >\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n
    \r\n \r\n Page{\" \"}\r\n \r\n {pageIndex + 1} of {pageOptions.length}\r\n \r\n {\"\"}\r\n \r\n \r\n Go to page :{\" \"}\r\n {\r\n const pageNumber = e.target.value\r\n ? Number(e.target.value) - 1\r\n : 0;\r\n gotoPage(pageNumber);\r\n }}\r\n />\r\n \r\n
    \r\n
    \r\n
    \r\n gotoPage(0)}\r\n disabled={!canPreviousPage}\r\n >\r\n {\"<<\"}\r\n \r\n\r\n previousPage()}\r\n disabled={!canPreviousPage}\r\n >\r\n Previous\r\n \r\n nextPage()}\r\n disabled={!canNextPage}\r\n >\r\n Next\r\n \r\n gotoPage(pageCount - 1)}\r\n disabled={!canNextPage}\r\n >\r\n {\">>\"}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {reducer.isShow && (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\nexport default Proveedores;\r\n","import React, {\r\n Fragment,\r\n useCallback,\r\n useEffect,\r\n useState,\r\n useMemo,\r\n } from \"react\";\r\n import { Link } from \"react-router-dom\";\r\n import { Card, Button } from \"react-bootstrap\";\r\n import {\r\n useTable,\r\n useGlobalFilter,\r\n useFilters,\r\n usePagination,\r\n } from \"react-table\";\r\n import { COLUMNS2 } from \"./Columns\";\r\n import { GlobalFilter } from \"./GlobalFilter\";\r\n //import './table.css';\r\n import \"./filtering.css\";\r\n import { TailSpin } from 'react-loader-spinner'\r\n import { getAllFacturacionCompra} from \"../../../Api/facturacion\";\r\n const Compras = () => {\r\n const [loading, setLoading] = useState(true);\r\n const [data, setdata] = useState([]);\r\n const columns = useMemo(() => COLUMNS2, []);\r\n const assigmentValue = useCallback(async () => {\r\n try {\r\n const result = await getAllFacturacionCompra();\r\n setdata([...result]);\r\n setLoading(false);\r\n } catch (err) {\r\n console.log(err);\r\n setLoading(false);\r\n }\r\n });\r\n useEffect(() => {\r\n assigmentValue();\r\n }, []);\r\n const tableInstance = useTable(\r\n {\r\n columns,\r\n data,\r\n initialState: { pageIndex: 0 },\r\n },\r\n useFilters,\r\n useGlobalFilter,\r\n usePagination\r\n );\r\n \r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow,\r\n state,\r\n page,\r\n gotoPage,\r\n pageCount,\r\n pageOptions,\r\n nextPage,\r\n previousPage,\r\n canNextPage,\r\n canPreviousPage,\r\n setGlobalFilter,\r\n } = tableInstance;\r\n \r\n const { globalFilter, pageIndex } = state;\r\n \r\n \r\n \r\n \r\n \r\n \r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Compras\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n

    \r\n \r\n \r\n {headerGroups.map((headerGroup) => (\r\n \r\n {headerGroup.headers.map((column) => (\r\n \r\n {column.render(\"Header\")}\r\n {column.canFilter\r\n ? column.render(\"Filter\")\r\n : null}\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n \r\n {page.map((row) => {\r\n prepareRow(row);\r\n return (\r\n \r\n {row.cells.map((cell) => {\r\n return (\r\n \r\n {\" \"}\r\n \r\n {cell.render(\"Cell\")}{\" \"}\r\n {\" \"}\r\n \r\n );\r\n })}\r\n \r\n );\r\n })}\r\n \r\n \r\n
    \r\n \r\n Page{\" \"}\r\n \r\n {pageIndex + 1} of {pageOptions.length}\r\n \r\n {\"\"}\r\n \r\n \r\n Go to page :{\" \"}\r\n {\r\n const pageNumber = e.target.value\r\n ? Number(e.target.value) - 1\r\n : 0;\r\n gotoPage(pageNumber);\r\n }}\r\n />\r\n \r\n
    \r\n
    \r\n
    \r\n gotoPage(0)}\r\n disabled={!canPreviousPage}\r\n >\r\n {\"<<\"}\r\n \r\n \r\n previousPage()}\r\n disabled={!canPreviousPage}\r\n >\r\n Previous\r\n \r\n nextPage()}\r\n disabled={!canNextPage}\r\n >\r\n Next\r\n \r\n gotoPage(pageCount - 1)}\r\n disabled={!canNextPage}\r\n >\r\n {\">>\"}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n };\r\n export default Compras;","import React, {\r\n Fragment,\r\n useCallback,\r\n useEffect,\r\n useState,\r\n useMemo,\r\n useRef,\r\n} from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Card, Button } from \"react-bootstrap\";\r\nimport {\r\n useTable,\r\n useGlobalFilter,\r\n useFilters,\r\n usePagination,\r\n} from \"react-table\";\r\nimport { COLUMNSCOMPRA } from \"./Columns\";\r\nimport { GlobalFilter } from \"./GlobalFilter\";\r\nimport \"./filtering.css\";\r\nimport { getAllDetalleCompra } from \"../../../Api/facturacion\";\r\nimport { JsonToExcel } from \"react-json-to-excel\";\r\nimport { TailSpin } from \"react-loader-spinner\";\r\nconst Listadecompras = () => {\r\n const [loading, setLoading] = useState(true);\r\n const [data, setdata] = useState([]);\r\n const columns = useMemo(() => COLUMNSCOMPRA, []);\r\n const Filtrar = useCallback(async () => {\r\n try {\r\n setLoading(true);\r\n\r\n const result = await getAllDetalleCompra();\r\n console.log(result)\r\n setdata([...result]);\r\n setLoading(false);\r\n } catch (err) {\r\n console.log(err);\r\n setLoading(false);\r\n }\r\n });\r\n useEffect(() => {\r\n Filtrar();\r\n }, []);\r\n\r\n const tableInstance = useTable(\r\n {\r\n columns,\r\n data,\r\n initialState: { pageIndex: 0 },\r\n },\r\n useFilters,\r\n useGlobalFilter,\r\n usePagination\r\n );\r\n\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow,\r\n state,\r\n page,\r\n gotoPage,\r\n pageCount,\r\n pageOptions,\r\n nextPage,\r\n previousPage,\r\n canNextPage,\r\n canPreviousPage,\r\n setGlobalFilter,\r\n } = tableInstance;\r\n\r\n const { globalFilter, pageIndex } = state;\r\n\r\n const tableRef = useRef(null);\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Detalle de Compras\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n

    \r\n
    \r\n \r\n \r\n

    \r\n \r\n \r\n {headerGroups.map((headerGroup) => (\r\n \r\n {headerGroup.headers.map((column) => (\r\n \r\n {column.render(\"Header\")}\r\n {column.canFilter\r\n ? column.render(\"Filter\")\r\n : null}\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n\r\n \r\n {page.map((row) => {\r\n prepareRow(row);\r\n return (\r\n \r\n {row.cells.map((cell) => {\r\n return (\r\n \r\n \r\n \r\n {cell.render(\"Cell\")}{\" \"}\r\n {\" \"}\r\n \r\n );\r\n })}\r\n \r\n );\r\n })}\r\n \r\n \r\n
    \r\n \r\n Page{\" \"}\r\n \r\n {pageIndex + 1} of {pageOptions.length}\r\n \r\n {\"\"}\r\n \r\n \r\n Go to page :{\" \"}\r\n {\r\n const pageNumber = e.target.value\r\n ? Number(e.target.value) - 1\r\n : 0;\r\n gotoPage(pageNumber);\r\n }}\r\n />\r\n \r\n
    \r\n
    \r\n
    \r\n gotoPage(0)}\r\n disabled={!canPreviousPage}\r\n >\r\n {\"<<\"}\r\n \r\n\r\n previousPage()}\r\n disabled={!canPreviousPage}\r\n >\r\n Previous\r\n \r\n nextPage()}\r\n disabled={!canNextPage}\r\n >\r\n Next\r\n \r\n gotoPage(pageCount - 1)}\r\n disabled={!canNextPage}\r\n >\r\n {\">>\"}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\nexport default Listadecompras;\r\n","import { useRef } from \"react\";\r\nimport { Button, Modal, Table } from \"react-bootstrap\";\r\nimport generatePDF from \"react-to-pdf\";\r\nimport { useDownloadExcel } from 'react-export-table-to-excel';\r\nconst ModalReporteCompra = (props) => {\r\n const {\r\n estado,\r\n onCloseModal,\r\n data,\r\n data2,\r\n date,\r\n date2,\r\n compraventa,\r\n formadepago,\r\n } = props;\r\n const _ = require(\"lodash\");\r\n \r\n const numbers = _.filter(data, (rowsDatas) => rowsDatas.estado=='ACTIVO')\r\n const sum = _.sumBy(numbers, (rowsDatas) => Number(rowsDatas.totalFactura));\r\n \r\n const tableRef = useRef(null);\r\n const tableRef2 = useRef(null)\r\n const { onDownload } = useDownloadExcel({\r\n currentTableRef: tableRef2.current,\r\n filename: 'reporte compras',\r\n sheet: 'Users'\r\n})\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Reporte Fecha: {date} al {date2}{\" \"}\r\n \r\n \r\n\r\n \r\n \r\n generatePDF(tableRef, { filename: `${date}.pdf` })}\r\n >\r\n Descargar PDF\r\n \r\n

    \r\n
    \r\n
    \r\n

    \r\n Rendición Fecha {date} al {date2}{\" \"}\r\n

    \r\n
    \r\n \r\n \r\n \r\n \r\n Fecha\r\n \r\n \r\n N. Factura\r\n \r\n \r\n Razon Social\r\n \r\n \r\n Ruc\r\n \r\n \r\n Descripcion\r\n \r\n \r\n {formadepago}\r\n \r\n \r\n Compr.\r\n \r\n \r\n Tipo Factura\r\n \r\n \r\n Monto\r\n \r\n \r\n \r\n \r\n {data.map((item) => {\r\n for (let i = 0; i < data2.current.length; i++) {\r\n if (data2.current[i].idfactura == item.idFactura) {\r\n item.producto = data2.current[i].producto;\r\n }\r\n\r\n }\r\n let monto\r\n let comprobante\r\n if (item.estado == 'ACTIVO') {\r\n monto = item.totalFactura\r\n comprobante = item.numerodecomprobante\r\n }\r\n else {\r\n monto = item.motivoanulacion\r\n comprobante = \"Anulado\"\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Total\r\n \r\n \r\n {sum.toLocaleString()}\r\n \r\n \r\n \r\n
    \r\n {item.fechafactura}\r\n \r\n \r\n {item.numerofactura}\r\n \r\n \r\n {item.razonsocial}\r\n \r\n {item.ruc}\r\n \r\n {item.producto}{\" \"}\r\n \r\n {item.formadepago}\r\n \r\n {comprobante}\r\n \r\n {item.tipoFactura}\r\n \r\n {monto.toLocaleString()}\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n

    \r\n Controlado por:\r\n ____________\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ModalReporteCompra;","import React, {\r\n Fragment,\r\n useCallback,\r\n useEffect,\r\n useState,\r\n useMemo,\r\n useRef,\r\n useReducer,\r\n} from \"react\";\r\nimport { Row, Col, Card, Button } from \"react-bootstrap\";\r\nimport { COLUMNS } from \"./Columns\";\r\nimport \"./filtering.css\";\r\nimport {\r\n getDetalleFacturaCompraId,\r\n getFacturasComprasByQuery,\r\n} from \"../../../Api/facturacion\";\r\n\r\nimport Swal from \"sweetalert2\";\r\nimport ModalReporteCompra from \"../sis/ModalOpciones/ModalReporteCompra\";\r\nconst showReducer = (curShow, state) => {\r\n switch (state.type) {\r\n case \"SHOW\":\r\n return {\r\n isShow: true,\r\n onReturnValue: state.onReturnValue,\r\n TimbradoObject: state.TimbradoObject,\r\n };\r\n case \"END\":\r\n return { ...curShow, isShow: false };\r\n default:\r\n return { ...curShow, isShow: false };\r\n }\r\n};\r\nconst Reportecompras = () => {\r\n const _ = require(\"lodash\");\r\n const [reducer, dispatchReducer] = useReducer(showReducer, {\r\n isShow: false,\r\n TimbradoObject: null,\r\n onReturnValue: null,\r\n });\r\n const compraventa=\"none\";\r\n const rformadepago=\"Obs\";\r\n const [filterData, setValue] = useState([]);\r\n const [data, setdata] = useState([]);\r\n const [data2, setdata2] = useState([]);\r\n const data3 = useRef();\r\n const [validated, setValidated] = useState(false);\r\n const handleSubmit = (event) => {\r\n const form = event.currentTarget;\r\n if (form.checkValidity() === false) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n setValidated(true);\r\n };\r\n const Filtrar = async () => {\r\n try {\r\n if (filterData.fechaFin == \"\") {\r\n filterData.fechaFin = \"1991-01-01\";\r\n }\r\n if (filterData.fechaInicio == \"\") {\r\n filterData.fechaInicio = \"1991-01-01\";\r\n }\r\n const result = await getFacturasComprasByQuery(filterData);\r\n setdata([...result]);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n\r\n const onAgregarTimbrado = async () => {\r\n Swal.fire({\r\n title: \"Generando\",\r\n html: \"Generando Reporte\", // add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: true,\r\n showConfirmButton: false,\r\n });\r\n const producto = {\r\n fechaInicio: filterData.fechaincial,\r\n fechaFin: filterData.fechafinal,\r\n };\r\n const result1 = await getFacturasComprasByQuery(producto);\r\n const result = _.filter(result1, (rowsDatas) => rowsDatas.estado=='ACTIVO')\r\n setdata2([...result]);\r\n let productox = \"\";\r\n let datas = [];\r\n for (let j = 0; j < result.length; j++) {\r\n const result2 = await getDetalleFacturaCompraId(result[j].idFactura );\r\n \r\n for (let i = 0; i < result2.length; i++) {\r\n\r\n \r\n if (i {\r\n dispatchReducer({ type: \"END\" });\r\n };\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Reporte Facturas Provedores\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Reporte\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n {\r\n setValue({\r\n ...filterData,\r\n fechaincial: e.target.value,\r\n });\r\n }}\r\n />\r\n
    \r\n \r\n
    \r\n {\r\n setValue({\r\n ...filterData,\r\n fechafinal: e.target.value,\r\n });\r\n }}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n {reducer.isShow && (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\nexport default Reportecompras;\r\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"menos de un segundo\",\n other: \"menos de {{count}} segundos\",\n },\n\n xSeconds: {\n one: \"1 segundo\",\n other: \"{{count}} segundos\",\n },\n\n halfAMinute: \"medio minuto\",\n\n lessThanXMinutes: {\n one: \"menos de un minuto\",\n other: \"menos de {{count}} minutos\",\n },\n\n xMinutes: {\n one: \"1 minuto\",\n other: \"{{count}} minutos\",\n },\n\n aboutXHours: {\n one: \"alrededor de 1 hora\",\n other: \"alrededor de {{count}} horas\",\n },\n\n xHours: {\n one: \"1 hora\",\n other: \"{{count}} horas\",\n },\n\n xDays: {\n one: \"1 día\",\n other: \"{{count}} días\",\n },\n\n aboutXWeeks: {\n one: \"alrededor de 1 semana\",\n other: \"alrededor de {{count}} semanas\",\n },\n\n xWeeks: {\n one: \"1 semana\",\n other: \"{{count}} semanas\",\n },\n\n aboutXMonths: {\n one: \"alrededor de 1 mes\",\n other: \"alrededor de {{count}} meses\",\n },\n\n xMonths: {\n one: \"1 mes\",\n other: \"{{count}} meses\",\n },\n\n aboutXYears: {\n one: \"alrededor de 1 año\",\n other: \"alrededor de {{count}} años\",\n },\n\n xYears: {\n one: \"1 año\",\n other: \"{{count}} años\",\n },\n\n overXYears: {\n one: \"más de 1 año\",\n other: \"más de {{count}} años\",\n },\n\n almostXYears: {\n one: \"casi 1 año\",\n other: \"casi {{count}} años\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"en \" + result;\n } else {\n return \"hace \" + result;\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.mjs\";\n\nconst dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: \"d MMM y\",\n short: \"dd/MM/y\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'a las' {{time}}\",\n long: \"{{date}} 'a las' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'el' eeee 'pasado a la' p\",\n yesterday: \"'ayer a la' p\",\n today: \"'hoy a la' p\",\n tomorrow: \"'mañana a la' p\",\n nextWeek: \"eeee 'a la' p\",\n other: \"P\",\n};\n\nconst formatRelativeLocalePlural = {\n lastWeek: \"'el' eeee 'pasado a las' p\",\n yesterday: \"'ayer a las' p\",\n today: \"'hoy a las' p\",\n tomorrow: \"'mañana a las' p\",\n nextWeek: \"eeee 'a las' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n if (date.getHours() !== 1) {\n return formatRelativeLocalePlural[token];\n } else {\n return formatRelativeLocale[token];\n }\n};\n","/* eslint-disable no-unused-vars */\n\n/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.mjs\";\n\nconst eraValues = {\n narrow: [\"AC\", \"DC\"],\n abbreviated: [\"AC\", \"DC\"],\n wide: [\"antes de cristo\", \"después de cristo\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n narrow: [\"e\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n abbreviated: [\n \"ene\",\n \"feb\",\n \"mar\",\n \"abr\",\n \"may\",\n \"jun\",\n \"jul\",\n \"ago\",\n \"sep\",\n \"oct\",\n \"nov\",\n \"dic\",\n ],\n\n wide: [\n \"enero\",\n \"febrero\",\n \"marzo\",\n \"abril\",\n \"mayo\",\n \"junio\",\n \"julio\",\n \"agosto\",\n \"septiembre\",\n \"octubre\",\n \"noviembre\",\n \"diciembre\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"d\", \"l\", \"m\", \"m\", \"j\", \"v\", \"s\"],\n short: [\"do\", \"lu\", \"ma\", \"mi\", \"ju\", \"vi\", \"sá\"],\n abbreviated: [\"dom\", \"lun\", \"mar\", \"mié\", \"jue\", \"vie\", \"sáb\"],\n wide: [\n \"domingo\",\n \"lunes\",\n \"martes\",\n \"miércoles\",\n \"jueves\",\n \"viernes\",\n \"sábado\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"mañana\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noche\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"medianoche\",\n noon: \"mediodia\",\n morning: \"mañana\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noche\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"medianoche\",\n noon: \"mediodia\",\n morning: \"mañana\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noche\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"de la mañana\",\n afternoon: \"de la tarde\",\n evening: \"de la tarde\",\n night: \"de la noche\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"medianoche\",\n noon: \"mediodia\",\n morning: \"de la mañana\",\n afternoon: \"de la tarde\",\n evening: \"de la tarde\",\n night: \"de la noche\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"medianoche\",\n noon: \"mediodia\",\n morning: \"de la mañana\",\n afternoon: \"de la tarde\",\n evening: \"de la tarde\",\n night: \"de la noche\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n return number + \"º\";\n};\n\nexport const localize = {\n ordinalNumber: ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => Number(quarter) - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","import { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.mjs\";\nimport { buildMatchFn } from \"../../_lib/buildMatchFn.mjs\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|a\\.?\\s?e\\.?\\s?c\\.?|d\\.?\\s?c\\.?|e\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|antes de la era com[uú]n|despu[eé]s de cristo|era com[uú]n)/i,\n};\nconst parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [\n /^(antes de cristo|antes de la era com[uú]n)/i,\n /^(despu[eé]s de cristo|era com[uú]n)/i,\n ],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[efmajsond]/i,\n abbreviated: /^(ene|feb|mar|abr|may|jun|jul|ago|sep|oct|nov|dic)/i,\n wide: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^e/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^en/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[dlmjvs]/i,\n short: /^(do|lu|ma|mi|ju|vi|s[áa])/i,\n abbreviated: /^(dom|lun|mar|mi[ée]|jue|vie|s[áa]b)/i,\n wide: /^(domingo|lunes|martes|mi[ée]rcoles|jueves|viernes|s[áa]bado)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n any: [/^do/i, /^lu/i, /^ma/i, /^mi/i, /^ju/i, /^vi/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(de la|a las) (mañana|tarde|noche))/i,\n any: /^([ap]\\.?\\s?m\\.?|medianoche|mediodia|(de la|a las) (mañana|tarde|noche))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn/i,\n noon: /^md/i,\n morning: /mañana/i,\n afternoon: /tarde/i,\n evening: /tarde/i,\n night: /noche/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n },\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./es/_lib/formatDistance.mjs\";\nimport { formatLong } from \"./es/_lib/formatLong.mjs\";\nimport { formatRelative } from \"./es/_lib/formatRelative.mjs\";\nimport { localize } from \"./es/_lib/localize.mjs\";\nimport { match } from \"./es/_lib/match.mjs\";\n\n/**\n * @category Locales\n * @summary Spanish locale.\n * @language Spanish\n * @iso-639-2 spa\n * @author Juan Angosto [@juanangosto](https://github.com/juanangosto)\n * @author Guillermo Grau [@guigrpa](https://github.com/guigrpa)\n * @author Fernando Agüero [@fjaguero](https://github.com/fjaguero)\n * @author Gastón Haro [@harogaston](https://github.com/harogaston)\n * @author Yago Carballo [@YagoCarballo](https://github.com/YagoCarballo)\n */\nexport const es = {\n code: \"es\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default es;\n","import Button from \"react-bootstrap/Button\";\r\nimport { Fragment} from \"react\";\r\n\r\nfunction TableRows2({rowsData, deleteTableRows, handleChange}) {\r\n \r\n return(\r\n \r\n rowsData.map((data, index)=>{\r\n const {total}= data;\r\n \r\n return(\r\n \r\n \r\n (handleChange(index, evnt))} name=\"cantidad\" className=\"form-control\"/> \r\n (handleChange(index, evnt))} name=\"producto\" className=\"form-control\"/> \r\n (handleChange(index, evnt))} className=\"form-control\"/>\r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n \r\n )\r\n \r\n}\r\nexport default TableRows2;","\r\nimport { Button, Modal } from \"react-bootstrap\";\r\n\r\nvar myStyle = {\r\n borderRight: '1px solid #222',\r\n width: '50%',\r\n height: '8%',\r\n}\r\nvar myStyle2 = {\r\n borderTop: '1px solid #222',\r\n\r\n height: '10%',\r\n}\r\nvar myStyle3 = {\r\n borderTop: '1px solid #222',\r\n\r\n height: '68%',\r\n}\r\n\r\nvar myStyle5 = {\r\n borderTop: '1px solid #222',\r\n height: '4%',\r\n}\r\nvar myStyle6 = {\r\n\r\n\r\n height: '4%',\r\n}\r\nvar myStyle7 = {\r\n borderTop: '1px solid #222',\r\n\r\n height: '2%',\r\n}\r\nvar myStyleex = {\r\n borderTop: '1px solid #222',\r\n\r\n height: '2%',\r\n}\r\nvar myStyleex2 = {\r\n borderTop: '1px solid #222',\r\n\r\n height: '2%',\r\n}\r\nvar myStylh1 = {\r\n borderRight: '1px solid #222',\r\n width: '6%',\r\n fontSize: 8\r\n}\r\nvar myStylh2 = {\r\n borderRight: '1px solid #222',\r\n width: '8%',\r\n fontSize: 8\r\n}\r\nvar myStylh3 = {\r\n borderRight: '1px solid #222',\r\n width: '40%',\r\n fontSize: 8\r\n}\r\nvar myStylh4 = {\r\n borderRight: '1px solid #222',\r\n width: '10%',\r\n fontSize: 8\r\n}\r\nvar myStylh5 = {\r\n borderRight: '1px solid #222',\r\n width: '7%',\r\n fontSize: 8\r\n}\r\nvar myStylh6 = {\r\n borderRight: '1px solid #222',\r\n width: '14%',\r\n fontSize: 8\r\n}\r\nvar myStylh7 = {\r\n\r\n width: '14%',\r\n fontSize: 8\r\n}\r\nvar myStyleventa = {\r\n borderRight: '1px solid #222',\r\n width: '64%',\r\n fontSize: 8\r\n}\r\nvar myStyleventa2 = {\r\n\r\n width: '37%',\r\n fontSize: 8\r\n}\r\nvar myStylSubtotal = {\r\n borderRight: '1px solid #222',\r\n width: '64%',\r\n fontSize: 8\r\n}\r\nvar myStylSubtotal2 = {\r\n borderRight: '1px solid #222',\r\n width: '8%',\r\n fontSize: 8\r\n}\r\nvar myStylSubtotal3 = {\r\n borderRight: '1px solid #222',\r\n width: '14%',\r\n fontSize: 8\r\n}\r\nvar myStylSubtotal4 = {\r\n\r\n width: '14%',\r\n fontSize: 8\r\n}\r\nvar myStyltotal = {\r\n borderRight: '1px solid #222',\r\n width: '86%',\r\n fontSize: 12\r\n}\r\nvar myStyltotal2 = {\r\n\r\n width: '14%',\r\n fontSize: 12\r\n}\r\nvar myStylh11 = {\r\n \r\n width: '30px',\r\n fontSize: 12\r\n}\r\nvar myStylh12 = {\r\n \r\n width: '39px',\r\n fontSize: 12\r\n}\r\nvar myStylh13 = {\r\n \r\n width: '184px',\r\n fontSize: 12\r\n}\r\nvar myStylh14 = {\r\n \r\n width: '48px',\r\n fontSize: 12\r\n}\r\nvar myStylh15 = {\r\n \r\n width: '36px',\r\n fontSize: 12\r\n}\r\nvar myStylh16 = {\r\n \r\n width: '66px',\r\n fontSize: 12\r\n}\r\nvar myStylh17 = {\r\n width: '66px',\r\n fontSize: 12\r\n}\r\nconst PreviewCompra = (props) => {\r\n const { estado, onCloseModal, onReturnValue, datosfactura, detallefactura} = props;\r\n console.log(datosfactura)\r\n const handleclick = () => {\r\n onReturnValue(datosfactura,detallefactura)\r\n };\r\n \r\n return (\r\n <>\r\n \r\n \r\n Preview Compra\r\n \r\n \r\n
    \r\n
    \r\n \r\n Numero Factura: {datosfactura.numerodefactura} \r\n

    \r\n\r\n \r\n Razon Social Emisor: {datosfactura.razonsocial}
    \r\n
    \r\n R.U.C Emisor: {datosfactura.ruc}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Fecha Emision: {datosfactura.fecha}

    \r\n Destino de Compra: {datosfactura.destinocompra?datosfactura.destinocompra:\"Caja Chica\"} \r\n

    \r\n\r\n Cond. de venta: {datosfactura.terminodepago}\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    cant.
    \r\n
    ArtCod.
    \r\n
    Descripcion
    \r\n
    P. Unitario
    \r\n
    exentas
    \r\n
    5%
    \r\n
    10%
    \r\n
    \r\n \r\n \r\n {detallefactura.map((detallefactura,index) => {\r\n let iva10 =\"\"\r\n let iva5 =\"\"\r\n console.log(detallefactura.iva)\r\n detallefactura.iva==='10'? iva10=detallefactura.total : iva5=detallefactura.total\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n\r\n \r\n
    {detallefactura.cantidad} {detallefactura.artcod} {detallefactura.producto} {detallefactura.precio} {detallefactura.exenta} {iva5} {iva10}
    \r\n\r\n \r\n
    \r\n
    Total
    \r\n
    {datosfactura.total}
    \r\n
    \r\n
    \r\n
    \r\n
    IVA (5%) {datosfactura.iva5total}
    \r\n
    IVA(10%) {datosfactura.iva10total}
    \r\n
    Total Iva: {datosfactura.ivatotal}
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default PreviewCompra;\r\n","import Row from \"react-bootstrap/Row\";\r\nimport Col from \"react-bootstrap/Col\";\r\nimport Button from \"react-bootstrap/Button\";\r\nimport Select from \"react-select\";\r\nimport Card from \"react-bootstrap/Card\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport Form from \"react-bootstrap/Form\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { TYPE_FACTURA,TYPE_DESTINO_COMPRA} from \"../../../Utils/const\";\r\n\r\n\r\nimport DatePicker from \"react-datepicker\";\r\nimport { registerLocale, setDefaultLocale } from \"react-datepicker\";\r\nimport es from 'date-fns/locale/es';\r\n\r\nimport React, {\r\n useCallback,\r\n useEffect,\r\n useState,\r\n useReducer,\r\n useRef,\r\n} from \"react\";\r\nimport Swal from \"sweetalert2\";\r\nimport { getAllProveedores,getProveedorById,saveProveedor} from \"../../../Api/Proveedores\";\r\nimport TableRows2 from \"./TableRows\";\r\nimport AgregarProveedores from \"./ModalCompras/AgregarProveedores\";\r\nimport PreviewCompra from \"./ModalCompras/PreviewCompra\";\r\nimport { insertFacturaCompra} from \"../../../Api/facturacion\";\r\nconst showReducer = (curShow, state) => {\r\n switch (state.type) {\r\n case \"SHOW\":\r\n return {\r\n isShow: true,\r\n typeModal: state.typeModal,\r\n onReturnValue: state.onReturnValue,\r\n };\r\n case \"SHOW2\":\r\n return {\r\n isShow2: true,\r\n typeModal: state.typeModal,\r\n onReturnValue: state.onReturnValue,\r\n };\r\n case \"END\":\r\n return { ...curShow, isShow: false,isShow2: false };\r\n }\r\n};\r\n const GenerarCompra = () => {\r\n registerLocale(\"es\", es);\r\n setDefaultLocale('es')\r\n const Editdata = [{\r\n proveedor:\"\",\r\n razonsocial:\"\",\r\n ruc:\"\",\r\n ciudad:\"\",\r\n direccion:\"\",\r\n telefono:\"\",\r\n correo:\"\"\r\n }]\r\n const isNew=true\r\n const [ListProveedores,setListProveedores]=useState([])\r\n const fdp = useRef()\r\n const tp = useRef()\r\n const navigate = useNavigate();\r\n const [RS,SetRS]=useState()\r\n const [RC,SetRC]=useState()\r\n const [formData3, setValue] = useState([]);\r\n const totalfactura = useRef(0);\r\n const Ivafive = useRef(0);\r\n const Ivaten = useRef(0);\r\n const ivatotalfactura = useRef(0);\r\n const [reducer, dispatchReducer] = useReducer(showReducer, {\r\n isShow: false,\r\n isShow2: false,\r\n typeModal: null,\r\n onReturnValue: null,\r\n });\r\n useEffect(() => {\r\n (async () => {\r\n try {\r\n Swal.fire({\r\n title: 'Cargando',\r\n html: 'Cargando datos',// add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n \r\n });\r\n \r\n \r\n const listResult3 = await getAllProveedores();\r\n \r\n \r\n const resultMapeado2 = listResult3.map((item) => {\r\n return { label: item.razonsocial+\" \"+item.ruc, value: item.idProveedores };\r\n });\r\n setListProveedores(resultMapeado2);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n fdp.current=\"Efectivo\"\r\n tp.current=\"Contado\"\r\n Swal.close();\r\n })();\r\n }, []);\r\n const clienteid = useCallback(async (e) => {\r\n const { value, label } = e;\r\n Swal.fire({\r\n title: 'Cargando',\r\n html: 'Cargando datos',// add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n \r\n });\r\n const resultCliente = await getProveedorById(value);\r\n Swal.close()\r\n const { ruc, razonsocial} = resultCliente[0];\r\n SetRS (razonsocial)\r\n SetRC (ruc)\r\n setValue({\r\n ...formData3,\r\n ruc: ruc,\r\n razonsocial:razonsocial\r\n });\r\n });\r\n\r\n const handleShow4 = () => {\r\n dispatchReducer({ type: \"SHOW\", typeModal: \"CLIENTE\" });\r\n };\r\n const onCloseModal = () => {\r\n dispatchReducer({ type: \"END\" });\r\n };\r\n const onReturnDataCliente = async (data,isNew) => {\r\n dispatchReducer({ type: \"END\" });\r\n try {\r\n Swal.fire({\r\n title: 'Cargando',\r\n html: 'Cargando datos',// add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n \r\n });\r\n const result = await saveProveedor({ ...data, isNew });\r\n \r\n if (result) {\r\n if (result) {\r\n const listResult3 = await getAllProveedores();\r\n const resultMapeado2 = listResult3.map((item) => {\r\n return { label: item.razonsocial+\" \"+item.ruc, value: item.idProveedores };\r\n });\r\n setListProveedores(resultMapeado2);\r\n Swal.close();\r\n Swal.fire({\r\n title: \"Proveedor Cargado\",\r\n html: `Se cargo correctalmente el Proveedor`,\r\n icon: \"success\",\r\n confirmButtonColor: 'black'\r\n });\r\n }\r\n }\r\n } catch (err) {\r\n Swal.close();\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Oops...\",\r\n text: `${err}`,\r\n });\r\n \r\n }\r\n };\r\n const handleChange = (index, evnt) => {\r\n const { name, value } = evnt.target;\r\n const rowsInput = [...rowsData];\r\n rowsInput[index][name] = value;\r\n rowsInput[index][\"total\"]=Math.round(rowsInput[index][\"cantidad\"]*rowsInput[index][\"precio\"])\r\n setRowsData(rowsInput);\r\n Refresh()\r\n };\r\n const [rowsData, setRowsData] = useState([]);\r\n const addTableRows = () => {\r\n const rowsInput = {\r\n cantidad: 0,\r\n producto: \"\",\r\n precio: \"\",\r\n iva: \"10\",\r\n total: \"\",\r\n };\r\n setRowsData([...rowsData, rowsInput]);\r\n };\r\n const deleteTableRows = (index) => {\r\n const rows = [...rowsData];\r\n rows.splice(index, 1);\r\n const _ = require(\"lodash\");\r\n const sum = _.sumBy(rows, (rowsDatas) => Number(rowsDatas.total));\r\n let i;\r\n let iva5total=0\r\n let iva10total=0;\r\n \r\n for (i in rows) {\r\n if (rows[i].iva == '5')\r\n {\r\n iva5total=iva5total+rows[i].total\r\n }\r\n if (rows[i].iva == '10')\r\n {\r\n iva10total=iva10total+rows[i].total\r\n }\r\n }\r\n \r\n totalfactura.current=sum;\r\n Ivaten.current=(Math.round(iva10total/11));\r\n Ivafive.current=(Math.round(iva5total/21));\r\n ivatotalfactura.current=Ivaten.current+Ivafive.current\r\n setValue({\r\n ...formData3,\r\n iva10total: Ivaten.current,\r\n iva5total:Ivafive.current,\r\n ivatotal: ivatotalfactura.current,\r\n total: sum\r\n });\r\n setRowsData(rows); \r\n };\r\n const Refresh = () => {\r\n const _ = require(\"lodash\");\r\n const sum = _.sumBy(rowsData, (rowsDatas) => Number(Math.round(rowsDatas.total)));\r\n let i;\r\n let iva5total=0\r\n let iva10total=0;\r\n \r\n for (i in rowsData) {\r\n if (rowsData[i].iva == '5')\r\n {\r\n iva5total=iva5total+rowsData[i].total\r\n }\r\n if (rowsData[i].iva == '10')\r\n {\r\n iva10total=iva10total+rowsData[i].total\r\n }\r\n }\r\n \r\n totalfactura.current=sum;\r\n Ivaten.current=(Math.round(iva10total/11));\r\n Ivafive.current=(Math.round(iva5total/21));\r\n ivatotalfactura.current=Ivaten.current+Ivafive.current\r\n setValue({\r\n ...formData3,\r\n iva10total: Ivaten.current,\r\n iva5total:Ivafive.current,\r\n ivatotal: ivatotalfactura.current,\r\n total: sum\r\n });\r\n };\r\n const SaveFactura = (e) => {\r\n e.preventDefault()\r\n formData3.terminodepago= formData3.terminodepago? formData3.terminodepago:\"Contado\"\r\n if (formData3.fecha===undefined)\r\n {\r\n Swal.fire({\r\n title: \"Sin Fecha de Emision\",\r\n html: `Favor ingrese Fecha de emision`,\r\n icon: \"warning\",\r\n confirmButtonColor: \"#00273a\",\r\n \r\n });\r\n\r\n }else\r\n {\r\n if (formData3.destinocompra===undefined)\r\n {\r\n setValue({\r\n ...formData3,\r\n destinocompra: \"Caja Chica\"\r\n });\r\n }\r\n if (formData3.ruc === undefined)\r\n {\r\n Swal.fire({\r\n title: \"Sin Razon social y Ruc\",\r\n html: `Favor Ingrese Proveedor`,\r\n icon: \"warning\",\r\n confirmButtonColor: \"#00273a\",\r\n \r\n });\r\n }\r\n else if (formData3.total===undefined || rowsData.length === 0 || rowsData[0].producto==\"\" || rowsData[0].cantidad==\"\" )\r\n {\r\n Swal.fire({\r\n title: \"Sin Detalle \",\r\n html: `Favor ingrese detalle `,\r\n icon: \"warning\",\r\n confirmButtonColor: \"#00273a\",\r\n });\r\n }else\r\n {\r\n dispatchReducer({ type: \"SHOW2\", typeModal: \"CLIENTE\" });\r\n }\r\n \r\n }\r\n \r\n }\r\n const onReturnPreview =async (data1,data2) =>\r\n {\r\n setValue((prevState) => {\r\n Swal.fire({\r\n title: 'Cargando',\r\n html: 'Cargando datos',// add html attribute if you want or remove\r\n allowOutsideClick: false,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n })\r\n const currentData = prevState;\r\n currentData[\"detalleFactura\"] = rowsData;\r\n return currentData;\r\n });\r\n try {\r\n \r\n const result = await insertFacturaCompra(formData3, rowsData);\r\n if (result) {\r\n if (result) {\r\n Swal.close()\r\n Swal.fire({\r\n title: \"Factura de compra Guardada\",\r\n html: `Se Guardo Correctamente`,\r\n icon: \"success\",\r\n confirmButtonColor: 'black'\r\n });\r\n \r\n navigate(\"/compras\");\r\n }\r\n }\r\n } catch (err) {\r\n Swal.close()\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Oops...\",\r\n text: `${err}`,\r\n });\r\n }\r\n \r\n }\r\n const [startDate, setStartDate] = useState(\"\");\r\n function formatDate(date) {\r\n var d = new Date(date),\r\n month = '' + (d.getMonth() + 1),\r\n day = '' + d.getDate(),\r\n year = d.getFullYear();\r\n\r\n if (month.length < 2) \r\n month = '0' + month;\r\n if (day.length < 2) \r\n day = '0' + day;\r\n\r\n return [year, month, day].join('-');\r\n}\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Fecha de Emision\r\n \r\n {setStartDate(date); setValue({\r\n ...formData3,\r\n fecha:formatDate(date)\r\n })} } />\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Numero de  Factura: \r\n \r\n {\r\n setValue({\r\n ...formData3,\r\n numerodefactura: e.target.value\r\n });\r\n }}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n Termino de Pago: \r\n {\r\n setValue({\r\n ...formData3,\r\n terminodepago: e.value\r\n });\r\n }}\r\n />\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Obs. y Forma de pago\r\n \r\n {\r\n setValue({\r\n ...formData3,\r\n obs: e.target.value\r\n });\r\n }}\r\n />\r\n
    \r\n
    \r\n Destino de Compra: \r\n {\r\n setValue({\r\n ...formData3,\r\n destinocompra: e.value\r\n });\r\n }}\r\n />\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Numero de Factura:  \r\n \r\n \r\n {formData3.numerodefactura}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Emisor\r\n \r\n \r\n {\" \"}\r\n {\r\n clienteid(e);\r\n }}\r\n \r\n />\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Cant.\r\n {\" \"}\r\n Cod. Producto/Servicio\r\n PrecioIvaTotal\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n Iva 10:\r\n \r\n {Ivaten.current}\r\n \r\n
    \r\n
    \r\n Iva 5:\r\n \r\n {Ivafive.current}\r\n \r\n
    \r\n
    \r\n Iva Total:\r\n \r\n {ivatotalfactura.current}\r\n \r\n
    \r\n
    \r\n \r\n Total:\r\n {totalfactura.current}\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n {reducer.isShow && (\r\n \r\n )}\r\n {reducer.isShow2 && (\r\n \r\n )}\r\n \r\n )\r\n };\r\n export default GenerarCompra;","import React, {\r\n useEffect,\r\n useState,\r\n useCallback,\r\n useReducer,\r\n useRef,\r\n} from \"react\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { Button } from \"react-bootstrap\";\r\nimport {\r\n getFacturaCompraById,\r\n anularFacturaCompra,\r\n getDetalleFacturaCompraId,\r\n} from \"../../../Api/facturacion\";\r\nimport Swal from \"sweetalert2\";\r\nimport { TailSpin } from \"react-loader-spinner\";\r\nimport { getUserCredentials } from \"../../../Api/usuario\";\r\nvar myStyle = {\r\n height: \"8%\",\r\n};\r\nvar myStyle2 = {\r\n borderTop: \"1px solid #222\",\r\n\r\n height: \"10%\",\r\n};\r\nvar myStyle3 = {\r\n borderTop: \"1px solid #222\",\r\n\r\n height: \"66%\",\r\n};\r\n\r\nvar myStyle5 = {\r\n borderTop: \"1px solid #222\",\r\n height: \"4%\",\r\n};\r\nvar myStyle6 = {\r\n height: \"4%\",\r\n};\r\n\r\nvar myStyleex = {\r\n borderTop: \"1px solid #222\",\r\n\r\n height: \"2%\",\r\n};\r\nvar myStyleex2 = {\r\n borderTop: \"1px solid #222\",\r\n\r\n height: \"3%\",\r\n};\r\nvar myStyleex2venta = {\r\n borderTop: \"1px solid #222\",\r\n\r\n height: \"2%\",\r\n};\r\nvar myStylh1 = {\r\n borderRight: \"1px solid #222\",\r\n width: \"8%\",\r\n fontSize: 8,\r\n};\r\nvar myStylh2 = {\r\n borderRight: \"1px solid #222\",\r\n width: \"8%\",\r\n fontSize: 8,\r\n};\r\nvar myStylh3 = {\r\n borderRight: \"1px solid #222\",\r\n width: \"40%\",\r\n fontSize: 8,\r\n};\r\nvar myStylh4 = {\r\n borderRight: \"1px solid #222\",\r\n width: \"10%\",\r\n fontSize: 8,\r\n};\r\nvar myStylh5 = {\r\n borderRight: \"1px solid #222\",\r\n width: \"12%\",\r\n fontSize: 8,\r\n};\r\nvar myStylh6 = {\r\n borderRight: \"1px solid #222\",\r\n width: \"12%\",\r\n fontSize: 8,\r\n};\r\nvar myStylh7 = {\r\n width: \"12%\",\r\n fontSize: 8,\r\n};\r\nvar myStyleventa = {\r\n borderRight: \"1px solid #222\",\r\n width: \"64%\",\r\n fontSize: 8,\r\n};\r\nvar myStyleventa2 = {\r\n width: \"37%\",\r\n fontSize: 8,\r\n};\r\nvar myStylSubtotal = {\r\n borderRight: \"1px solid #222\",\r\n width: \"64%\",\r\n fontSize: 8,\r\n};\r\nvar myStylSubtotal2 = {\r\n borderRight: \"1px solid #222\",\r\n width: \"14%\",\r\n fontSize: 12,\r\n};\r\nvar myStylSubtotal3 = {\r\n borderRight: \"1px solid #222\",\r\n width: \"14%\",\r\n fontSize: 12,\r\n};\r\nvar myStylSubtotal4 = {\r\n width: \"14%\",\r\n fontSize: 12,\r\n};\r\nvar myStyltotal = {\r\n borderRight: \"1px solid #222\",\r\n width: \"86%\",\r\n fontSize: 10,\r\n};\r\nvar myStyltotal2 = {\r\n width: \"14%\",\r\n fontSize: 12,\r\n};\r\nvar myStylh11 = {\r\n width: \"49px\",\r\n fontSize: 11,\r\n\r\n borderBottom: '1px solid #222',\r\n textAlign: 'center'\r\n};\r\nvar myStylh12 = {\r\n width: \"50px\",\r\n fontSize: 11,\r\n textAlign: 'center',\r\n\r\n borderBottom: '1px solid #222',\r\n};\r\nvar myStylh13 = {\r\n width: \"212px\",\r\n fontSize: 11,\r\n\r\n borderBottom: '1px solid #222',\r\n};\r\nvar myStylh14 = {\r\n width: \"50px\",\r\n fontSize: 11,\r\n textAlign: 'center',\r\n\r\n borderBottom: '1px solid #222',\r\n};\r\nvar myStylh15 = {\r\n width: \"74px\",\r\n fontSize: 11,\r\n textAlign: 'center',\r\n\r\n borderBottom: '1px solid #222',\r\n};\r\nvar myStylh16 = {\r\n width: \"74px\",\r\n fontSize: 11,\r\n textAlign: 'center',\r\n\r\n borderBottom: '1px solid #222',\r\n};\r\nvar myStylh17 = {\r\n width: \"62px\",\r\n fontSize: 11,\r\n textAlign: 'center',\r\n\r\n borderBottom: '1px solid #222',\r\n};\r\nvar myStylex1 = {\r\n borderRight: \"1px solid #222\",\r\n width: \"50%\",\r\n fontSize: 12,\r\n};\r\nvar myStylex2 = {\r\n width: \"50%\",\r\n fontSize: 30,\r\n color: \"Red\",\r\n};\r\nconst showReducer = (curShow, state) => {\r\n switch (state.type) {\r\n case \"SHOW\":\r\n return {\r\n isShow: true,\r\n onReturnValue: state.onReturnValue,\r\n ListFDP: state.ListFDP,\r\n };\r\n case \"SHOW2\":\r\n return {\r\n isShow: false,\r\n isShow2: true,\r\n onReturnValue: state.onReturnValue,\r\n };\r\n case \"END\":\r\n return { ...curShow, isShow: false, isShow2: false };\r\n }\r\n};\r\n\r\nconst FichaFacturaCompra = () => {\r\n const [userData, setUserData] = useState({});\r\n const [loading, setLoading] = useState(true);\r\n const [reducer, dispatchReducer] = useReducer(showReducer, {\r\n isShow: false,\r\n isShow2: false,\r\n ListFDP: null,\r\n onReturnValue: null,\r\n });\r\n const location = useLocation();\r\n const { id } = useParams()\r\n const [id2, setid2] = useState(id);\r\n const [datosfacturas, setFactura] = useState([]);\r\n const [iva10total, setiva10total] = useState();\r\n const [iva5total, setiva5total] = useState();\r\n const [iva0total, setiva0total] = useState();\r\n const [detallefactura, setDetalle] = useState([]);\r\n\r\n const Ncomprobante = useRef(\"NO\");\r\n const numberToTextss = require(\"../TextoNumero\");\r\n\r\n const assigmentValue = useCallback(async () => {\r\n try {\r\n const listResult = await getFacturaCompraById(id2); // de compra\r\n const listResult2 = await getDetalleFacturaCompraId(id2); // de compra\r\n const iva10array = listResult2.filter(user => user.iva == '10')\r\n const iva5array = listResult2.filter(user => user.iva == '5')\r\n const iva0array = listResult2.filter(user => user.iva == '0')\r\n let totaliva10i = 0\r\n iva10array.forEach(function (a) { totaliva10i += a.total; });\r\n setiva10total(totaliva10i)\r\n let totaliva5i = 0\r\n iva5array.forEach(function (a) { totaliva5i += a.total; });\r\n setiva5total(totaliva5i)\r\n let totaliva0i = 0\r\n iva0array.forEach(function (a) { totaliva0i += a.total; });\r\n setiva0total(totaliva0i)\r\n const result2 = await getUserCredentials();\r\n setUserData(result2);\r\n\r\n Ncomprobante.current = listResult[0].numerofactura;\r\n\r\n setFactura(listResult);\r\n setDetalle(listResult2);\r\n setLoading(false);\r\n } catch (err) {\r\n console.log(err);\r\n setLoading(false);\r\n }\r\n }, [id]);\r\n useEffect(() => {\r\n assigmentValue();\r\n }, [assigmentValue]);\r\n const AnularCompra = () => {\r\n try {\r\n Swal.fire({\r\n title: 'Estas seguro/a de Anular?',\r\n text: \"No es Reversible!\",\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: 'black',\r\n cancelButtonColor: 'red',\r\n confirmButtonText: 'Si! anular'\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n (async () => {\r\n const msg = await anularFacturaCompra(id)\r\n console.log(msg)\r\n assigmentValue()\r\n Swal.fire({\r\n title: 'Anulado',\r\n text: `${msg}`,\r\n icon: 'warning',\r\n confirmButtonColor: 'black',\r\n\r\n })\r\n })()\r\n\r\n\r\n\r\n }\r\n })\r\n\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n return (\r\n <>\r\n \r\n {datosfacturas.map((datosfactura, index2) => {\r\n return (\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n

    Factura de Compra

    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n \r\n Numero Factura:\r\n

    {datosfactura.numerofactura}{\" \"}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Fecha Emision: {datosfactura.fechafactura}{\" \"}\r\n \r\n
    \r\n\r\n
    \r\n \r\n Emisor: {datosfactura.razonsocial}\r\n \r\n
    \r\n
    \r\n \r\n RUC Emisor: {datosfactura.ruc}\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Venta\r\n
    \r\n
    \r\n
    \r\n
    \r\n cant.\r\n
    \r\n
    \r\n ArtCod.\r\n
    \r\n
    \r\n Descripcion\r\n
    \r\n
    \r\n P. Unitario\r\n
    \r\n
    \r\n exentas\r\n
    \r\n
    \r\n 5%\r\n
    \r\n
    \r\n 10%\r\n
    \r\n
    \r\n \r\n \r\n {detallefactura.map((detallefactura, index) => {\r\n let iva10 = \"\";\r\n let iva5 = \"\";\r\n let iva0 = \"\";\r\n if (detallefactura.iva === \"10\") {\r\n iva10 = detallefactura.total\r\n } else if (detallefactura.iva === \"5\") {\r\n iva5 = detallefactura.total\r\n } else if (detallefactura.iva === \"0\") {\r\n iva0 = detallefactura.total\r\n }\r\n return (\r\n \r\n \r\n \r\n {\" \"}\r\n {detallefactura.cantidad}{\" \"}\r\n \r\n \r\n \r\n \r\n {\" \"}\r\n {detallefactura.artcod}{\" \"}\r\n \r\n \r\n \r\n {detallefactura.producto} \r\n \r\n \r\n {detallefactura.precio} \r\n \r\n \r\n {iva0}\r\n \r\n \r\n {iva5}\r\n \r\n \r\n {iva10}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n\r\n \r\n \r\n Sub Total\r\n
    \r\n \r\n {iva0total}\r\n
    \r\n \r\n {iva5total}\r\n
    \r\n \r\n {iva10total}\r\n \r\n \r\n
    \r\n \r\n Total a pagar(en letas){\" \"}\r\n \r\n {numberToTextss.NumerosALetras(\r\n datosfactura.totalFactura\r\n )}{\" \"}\r\n Guaranies---------\r\n {\" \"}\r\n
    \r\n \r\n {datosfactura.totalFactura}\r\n \r\n \r\n
    \r\n \r\n \r\n LIQUIDACIOON DEL IVA (5%){\" \"}\r\n {datosfactura.iva5total}\r\n
    \r\n \r\n (10%) {datosfactura.iva10total}\r\n \r\n \r\n Total Iva:{\" \"}\r\n {datosfactura.iva5total + datosfactura.iva10total}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Datos Extras

    \r\n \r\n
    \r\n
    \r\n \r\n Tipo de Factura : {datosfactura.tipoFactura}\r\n \r\n

    \r\n\r\n Obs : {datosfactura.formadepago} \r\n

    \r\n \r\n Destino de Compra : {datosfactura.destinocompra}{\" \"}\r\n \r\n

    \r\n \r\n Estado : {datosfactura.estado}{\" \"}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\nexport default FichaFacturaCompra;\r\n","import React, { useContext } from \"react\";\r\n\r\n/// React router dom\r\nimport { Routes, Route, Outlet,Navigate } from \"react-router-dom\";\r\n\r\n/// Css\r\nimport \"./index.css\";\r\nimport \"./chart.css\";\r\nimport \"./step.css\";\r\n\r\n/// Layout\r\nimport Nav from \"./layouts/nav\";\r\nimport ScrollToTop from \"./ScrollToTop\";\r\nimport { ThemeContext } from \"../context/ThemeContext\";\r\nimport OTimbrado from \"./pages/opciones/Otimbrado\";\r\nimport Ocostos from \"./pages/opciones/Ocostos\";\r\nimport Oseguros from \"./pages/opciones/Oseguros\";\r\nimport Oformasdepago from \"./pages/opciones/Oformasdepago\";\r\nimport Osucursal from \"./pages/opciones/Osucursal\";\r\nimport Omoneda from \"./pages/opciones/Omoneda\";\r\nimport FacturaContado from \"./pages/FacturaContado\";\r\nimport Depositado from \"./pages/facturascontado/Depositado\";\r\nimport Nodepositado from \"./pages/facturascontado/Nodepositado\";\r\nimport FacturaCredito from \"./pages/FacturaCredito\";\r\nimport Reporte from \"./pages/Reportes\";\r\nimport Opuntodeventa from \"./pages/opciones/Opuntodeventa\";\r\nimport Clientes from \"./pages/facturacion/Clientes\";\r\nimport Facturas from \"./pages/facturacion/Facturas\";\r\nimport Listadeventas from \"./pages/facturacion/Listadeventas.js\";\r\nimport FichaCliente from \"./pages/facturacion/Fichas/FichaCliente\";\r\nimport FichaFactura from \"./pages/facturacion/Fichas/FichaFactura\";\r\nimport Vencimiento from \"./pages/facturascredito/Vencimientos\";\r\nimport Cobranzas from \"./pages/facturascredito/Cobranza\";\r\nimport Generarfactura from \"./pages/Generarfactura.js\";\r\nimport AppLogout from \"./AppLogout\";\r\n/*proveedores*/\r\nimport Proveedores from \"./pages/compras/Proveedores\";\r\nimport Compras from \"./pages/compras/Compras\";\r\nimport Listadecompras from \"./pages/compras/Listadecompras\";\r\nimport Reportecompras from \"./pages/compras/Reportecompras\";\r\nimport GenerarCompra from \"./pages/compras/GenerarCompra\";\r\nimport FichaFacturaCompra from \"./pages/compras/FichaFacturaCompra.js\";\r\nconst Markup = () => {\r\n const allRoutes = [\r\n // rutas\r\n\r\n { url: \"Opcionesdetimbrado\", component: },\r\n { url: \"Opcionesdecosto\", component: },\r\n { url: \"Opcionesformadepago\", component: },\r\n { url: \"Opcionesdemoneda\", component: },\r\n { url: \"FacturaContado\", component: },\r\n { url: \"depositado\", component: },\r\n { url: \"nodepositado\", component: },\r\n { url: \"FacturaCredito\", component: },\r\n { url: \"Reporte\", component: },\r\n { url: \"Opcionesdesucursal\", component: },\r\n { url: \"Opcionesseguros\", component: },\r\n { url: \"Opcionesodv\", component: },\r\n { url: \"Clientes\", component: },\r\n { url: \"Facturas\", component: },\r\n { url: \"Detalles\", component: },\r\n { url: \"FichaCliente/:id\", component: },\r\n { url: \"FichaFactura/:id\", component: },\r\n { url: \"cobranza\", component: },\r\n { url: \"vencimientos\", component: },\r\n { url: \"generarfactura\", component: },\r\n /*proveedores*/\r\n { url: \"proveedores\", component: },\r\n { url: \"compras\", component: },\r\n { url: \"listadecompras\", component: },\r\n { url: \"reportecompras\", component: },\r\n { url: \"generarcompra\", component: },\r\n { url: \"FichaFacturaCompra/:id\", component: },\r\n\r\n ];\r\n let path = window.location.pathname;\r\n path = path.split(\"/\");\r\n path = path[path.length - 1];\r\n\r\n let pagePath = path.split(\"-\").includes(\"page\");\r\n return (\r\n <>\r\n \r\n \r\n }>\r\n {allRoutes.map((data, i) => (\r\n \r\n ))}\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nfunction Layout7() {\r\n const { menuToggle, sidebariconHover } = useContext(ThemeContext);\r\n return (\r\n \r\n